# 当前配置为默认值，请根据需要修改

# 服务器监听IP（以实际为准）
HOST=

# 服务器监听端口
PORT=3000

# 路由前缀，必须以 / 开头（如果不为空）(已弃用，使用 route_registry.json 定义)
# ROUTE_PREFIX=

# 最高权限的认证令牌，必填
AUTH_TOKEN=

# 用于共享的认证令牌，仅Chat端点权限(轮询与AUTH_TOKEN不同步)，无其余权限
SHARED_TOKEN=

# 启用流式响应检查，关闭则无法响应错误，代价是会对第一个块解析2次(已弃用)
# 新版本已经完成优化
# ENABLE_STREAM_CHECK=true

# 流式消息结束后发送包含"finish_reason"为"stop"的空消息块(已弃用)
# INCLUDE_STOP_REASON_STREAM=true

# 令牌文件路径(已弃用)
# TOKEN_FILE=.token

# 令牌列表文件路径(已弃用)
# TOKEN_LIST_FILE=.tokens

# 是否启用慢速池（true/false）(已失效)
ENABLE_SLOW_POOL=false

# 允许claude开头的模型请求绕过内置模型限制（true/false）(已弃用)
# PASS_ANY_CLAUDE=false

# 是否启用长上下文模式（true/false）
ENABLE_LONG_CONTEXT=false

# 图片处理能力配置
# 可选值:
# - none 或 disabled：禁用图片功能
# - base64 或 base64-only：仅支持 base64 编码的图片
# - all 或 base64-http：支持 base64 和 HTTP 图片
#   注意：启用 HTTP 支持可能会暴露服务器 IP
VISION_ABILITY=base64

# 额度检查配置
# 可选值:
# - none 或 disabled：禁用额度检查
# - default：详见 README
# - all 或 everything：额度无条件检查
# - 以,分隔的模型列表，为空时使用默认值
USAGE_CHECK=default

# 是否允许使用动态(自定义)配置的 API Key
DYNAMIC_KEY=false

# 动态 Key 的标识前缀
KEY_PREFIX=sk-

# 默认提示词
# 使用一个空格则没有默认提示词
# 占位符：所有{{currentDateTime}}将自动替换为rfc3339标准的当前时间
DEFAULT_INSTRUCTIONS="Respond in Chinese by default"

# 私有反向代理服务器主机名
PRI_REVERSE_PROXY_HOST=

# 公开反向代理服务器主机名
PUB_REVERSE_PROXY_HOST=

# 代理地址配置(已弃用)
# - 格式：name=url，如 work=http://localhost:7890
# - 预留值：
#   - `no` 或留空: 不使用任何代理
#   - `system` 或 `default`: 使用系统代理
# - 支持对预留值重命名，如 my_no=no
# - 代理地址支持以下格式：
#   - http://localhost:7890
#   - socks5://username:password@localhost:1080
#   - 支持的协议: http, https, socks4, socks5, socks5h
# - 多个配置用逗号分隔，如：
#   my_proxy=http://localhost:7890,work=socks5://localhost:1080,offline=no
# 注意：
# - 相同的代理地址将共享同一个客户端实例
# - 第一个有效的代理将作为默认代理
# - 预留值(no,system等)不能用作代理名称
# - 该项请到/config设置
# PROXIES=system

# 请求体大小限制（单位为Byte）
# 默认为2MB (2,000,000 字节)
REQUEST_BODY_LIMIT=2000000

# OpenAI 请求时，token 和 checksum 的分隔符(已弃用)
# TOKEN_DELIMITER=,

# 同时兼容默认的,作为分隔符(已弃用)
# USE_COMMA_DELIMITER=true

# 调试
DEBUG=true

# 调试文件
DEBUG_LOG_FILE=debug.log

# 日志储存条数(最大值100000)(为0则无日志，为100000则无限制，但日志文件上限8EB=8192PB=8388608TB，以防你看不懂，前提是你内存多大)
REQUEST_LOGS_LIMIT=100

# TCP保活时间(秒)(最大值600)
TCP_KEEPALIVE=90

# 服务请求超时(秒)(最大值600)
SERVICE_TIMEOUT=30

# 包含网络引用
INCLUDE_WEB_REFERENCES=false

# 持久化日志文件路径(已弃用)
# LOGS_FILE_PATH=logs.bin

# 持久化页面配置文件路径(已弃用)
# PAGES_FILE_PATH=pages.bin

# 程序数据目录
DATA_DIR=data

# 通用时区头，格式为America/Los_Angeles这样的时区标识符
GENERAL_TIMEZONE=Asia/Shanghai

# 连续空流阈值，达到该值后断开连接（默认10）(已弃用)
# MAX_EMPTY_STREAM_COUNT=10

# 使用内嵌的Claude.ai官方提示词作为默认提示词，如果是claude-开头的模型优先级大于DEFAULT_INSTRUCTIONS(已弃用)
# USE_OFFICIAL_CLAUDE_PROMPTS=false

# 禁用HTTP2
# DISABLE_HTTP2=false

# Cursor客户端版本
CURSOR_CLIENT_VERSION=1.0.0

# 思考标签
THINKING_TAG=think

# 真实额度，否则全零
REAL_USAGE=true

# 安全哈希，hash生成更慢，与30000秒更新client key和生成checksum有关
SAFE_HASH=true

# 模型数据获取模式
# - 可选值:
#   - truncate        - 覆盖模式(默认):    完全使用新获取的模型列表，替换所有现有模型
#   - append:truncate - 智能合并模式:      保留现有模型中不在新列表中的，同时添加或更新新模型
#   - append          - 纯追加模式:        只添加不存在的新模型，已有模型保持不变
FETCH_RAW_MODELS=truncate

# 默认代码补全区域(对应token的tags的gcpp_host键)
# - 可选值
#   - us-asia.gcpp.cursor.sh | Asia - 距离亚洲节点更近
#   - us-eu.gcpp.cursor.sh   | EU   - 距离欧洲节点更近
#   - us-only.gcpp.cursor.sh | US   - 距离美国节点更近
GENERAL_GCPP_HOST=Asia

# 短效令牌有效期(秒)(已弃用)
# Web
# 格式: 单个数字或范围 (如 "3600" 或 "3600-5400")
# 示例: 5400 表示令牌有效期为 1.5 小时
# TOKEN_SHORT_VALIDITY=5400

# 长效令牌有效期(秒)(已弃用)
# Session
# 格式: 单个数字或范围 (如 "86400" 或 "86400-5184000")
# 示例: 5184000 表示令牌有效期为 60 天
# TOKEN_LONG_VALIDITY=5184000

# 允许的令牌提供者
ALLOWED_PROVIDERS=auth0,google-oauth2,github

# 绕过模型验证，允许所有模型（会带有一定的性能损失）
BYPASS_MODEL_VALIDATION=false

# 请求模型唯一标识符来源
# - 可选值
#   - id
#   - client_id
#   - server_id
MODEL_ID_SOURCE=client_id

# 上下文填充位
# - 可选值
#   - context: 1                              # 仅使用当前上下文
#   - repo_context: 2                         # 仅使用仓库上下文
#   - context + repo_context: 3               # 当前上下文 + 仓库上下文
#   - mode_specific_context: 4                # 模式特定上下文
#   - context + mode_specific_context: 5      # 当前上下文 + 模式特定上下文
#   - repo_context + mode_specific_context: 6 # 仓库上下文 + 模式特定上下文
#   - all_contexts: 7                         # 所有上下文组合
CONTEXT_FILL_MODE=1

# 前端资源路径
# 事实上定义了 route_registry.json
FRONTEND_PATH=frontend.zip

# NTP 服务器列表（逗号分隔）
# 留空则完全禁用 NTP 时间同步功能
# 示例：pool.ntp.org,time.cloudflare.com,time.windows.com
NTP_SERVERS=

# NTP 周期性同步间隔（秒）
# 仅在配置了服务器时生效
# 0 或不设置表示仅在启动时同步一次（不启动后台任务）
NTP_SYNC_INTERVAL_SECS=3600

# 每次同步的采样次数
# 多次采样可提高精度，但会增加同步耗时
# 可用最小值为 3
NTP_SAMPLE_COUNT=8

# 采样间隔（毫秒）
# 两次采样之间的等待时间
# 过小可能导致网络拥塞，过大会延长同步时间
NTP_SAMPLE_INTERVAL_MS=50

# 预计的峰值速率
# RPS: 每秒请求数
LOG_PEAK_RPS=25

# 期望的缓冲时长
# 不进行日志丢弃时期望的堵塞延迟时间
LOG_BUFFER_SECONDS=2

# 过载时日志丢弃（未实现）
# LOG_DROP_ON_OVERLOAD=false

# 运行时间的显示格式
# 可选值:
#   - auto      : 自动选择格式
#   - compact   : 紧凑格式 (如: 1h30m)
#   - standard  : 标准格式 (如: 1 hour 30 minutes)
#   - detailed  : 详细格式 (如: 1 hour, 30 minutes, 5 seconds)
#   - iso8601   : ISO 8601 格式 (如: PT1H30M5S)
#   - fuzzy     : 模糊格式 (如: about an hour)
#   - numeric   : 纯数字格式 (如: 5405)
#   - verbose   : 冗长格式 (如: 1 hour and 30 minutes)
#   - random    : 随机格式 (仅用于测试)
DURATION_FORMAT=random

# 运行时间的显示语言
# 可选值:
#   - english   : 英语
#   - chinese   : 中文
#   - japanese  : 日语
#   - spanish   : 西班牙语
#   - german    : 德语
#   - random    : 随机语言 (仅用于测试)
DURATION_LANGUAGE=random
