2025-12-10 20:52:44 +08:00
|
|
|
|
# ==================== 必须配置(启动前) ====================
|
|
|
|
|
|
# 以下配置项必须在项目启动前设置
|
|
|
|
|
|
|
2025-12-19 17:31:15 +08:00
|
|
|
|
# 数据库配置
|
|
|
|
|
|
DB_HOST=localhost
|
|
|
|
|
|
DB_PORT=5432
|
|
|
|
|
|
DB_USER=postgres
|
|
|
|
|
|
DB_NAME=aether
|
2025-12-10 20:52:44 +08:00
|
|
|
|
DB_PASSWORD=your_secure_password_here
|
2025-12-19 17:31:15 +08:00
|
|
|
|
|
|
|
|
|
|
# Redis 配置
|
|
|
|
|
|
REDIS_HOST=localhost
|
|
|
|
|
|
REDIS_PORT=6379
|
2025-12-10 20:52:44 +08:00
|
|
|
|
REDIS_PASSWORD=your_redis_password_here
|
|
|
|
|
|
|
|
|
|
|
|
# JWT密钥(使用 python generate_keys.py 生成)
|
|
|
|
|
|
# 用于用户登录 token 签名,更换后所有用户需重新登录
|
|
|
|
|
|
JWT_SECRET_KEY=change-this-to-a-secure-random-string
|
|
|
|
|
|
|
|
|
|
|
|
# 独立加密密钥(用于加密 Provider API Key 等敏感数据)
|
|
|
|
|
|
# 注意:更换此密钥后需要在管理面板重新配置所有 Provider API Key
|
|
|
|
|
|
ENCRYPTION_KEY=change-this-to-another-secure-random-string
|
|
|
|
|
|
|
|
|
|
|
|
# 管理员账号(仅首次初始化时使用, 创建完成后可在系统内修改密码)
|
|
|
|
|
|
ADMIN_EMAIL=admin@example.com
|
|
|
|
|
|
ADMIN_USERNAME=admin
|
|
|
|
|
|
ADMIN_PASSWORD=admin123456
|
|
|
|
|
|
|
|
|
|
|
|
# ==================== 可选配置(有默认值) ====================
|
|
|
|
|
|
# 以下配置项有合理的默认值,可按需调整
|
|
|
|
|
|
|
|
|
|
|
|
# 应用端口(默认 8084)
|
|
|
|
|
|
# APP_PORT=8084
|
|
|
|
|
|
|
|
|
|
|
|
# API Key 前缀(默认 sk)
|
|
|
|
|
|
# API_KEY_PREFIX=sk
|
|
|
|
|
|
|
|
|
|
|
|
# 日志级别(默认 INFO,可选:DEBUG, INFO, WARNING, ERROR)
|
|
|
|
|
|
# LOG_LEVEL=INFO
|
2026-01-13 18:46:23 +08:00
|
|
|
|
|
|
|
|
|
|
# CORS 配置(允许跨域的源,多个源用逗号分隔)
|
|
|
|
|
|
# 示例: http://localhost:3000,https://example.com
|
|
|
|
|
|
# 默认: * (允许所有源)
|
|
|
|
|
|
# CORS_ORIGINS=*
|
2026-01-14 17:29:04 +08:00
|
|
|
|
|
|
|
|
|
|
# ==================== 超时配置 ====================
|
|
|
|
|
|
# 以下配置控制各种超时行为,影响故障转移和请求处理
|
|
|
|
|
|
|
|
|
|
|
|
# --- HTTP 连接层超时(httpx 底层) ---
|
|
|
|
|
|
# 这些是网络层的超时,控制 TCP 连接和数据传输
|
|
|
|
|
|
|
|
|
|
|
|
# TCP 连接建立超时(默认 10 秒)
|
|
|
|
|
|
# 无法在此时间内建立 TCP 连接则触发故障转移
|
|
|
|
|
|
# HTTP_CONNECT_TIMEOUT=10.0
|
|
|
|
|
|
|
|
|
|
|
|
# 读取数据超时(默认 60 秒)
|
|
|
|
|
|
# 两次数据包之间的最大等待时间,超时触发故障转移
|
|
|
|
|
|
# 注意:如果上游持续发送数据(哪怕很慢),此计时器会不断重置
|
|
|
|
|
|
# HTTP_READ_TIMEOUT=60.0
|
|
|
|
|
|
|
|
|
|
|
|
# 流式响应首字节超时(默认 30 秒,范围 10-120 秒)
|
|
|
|
|
|
# 从发起请求到收到第一个字节的最大等待时间
|
|
|
|
|
|
# 仅对流式请求生效,超时触发故障转移
|
|
|
|
|
|
# STREAM_FIRST_BYTE_TIMEOUT=30.0
|
2026-01-28 01:01:05 +08:00
|
|
|
|
|
|
|
|
|
|
# ==================== 数据库连接池配置 ====================
|
|
|
|
|
|
# 连接池大小直接影响并发能力,特别是流式请求场景
|
|
|
|
|
|
# 每个流式请求会占用一个连接直到响应完成
|
|
|
|
|
|
|
|
|
|
|
|
# PostgreSQL 最大连接数(默认 100,需与 postgresql.conf 中 max_connections 匹配)
|
|
|
|
|
|
# PG_MAX_CONNECTIONS=100
|
|
|
|
|
|
|
|
|
|
|
|
# 预留给管理工具的连接数(默认 10)
|
|
|
|
|
|
# PG_RESERVED_CONNECTIONS=10
|
|
|
|
|
|
|
|
|
|
|
|
# 连接池大小(默认自动计算:(PG_MAX - RESERVED) / WORKERS / 2)
|
|
|
|
|
|
# 高并发场景建议手动设置较大值
|
|
|
|
|
|
# DB_POOL_SIZE=20
|
|
|
|
|
|
|
|
|
|
|
|
# 最大溢出连接数(默认等于 DB_POOL_SIZE)
|
|
|
|
|
|
# 高峰期可临时创建的额外连接
|
|
|
|
|
|
# DB_MAX_OVERFLOW=20
|
|
|
|
|
|
|
|
|
|
|
|
# 连接获取超时(默认 60 秒)
|
|
|
|
|
|
# 超时后抛出 TimeoutError
|
|
|
|
|
|
# DB_POOL_TIMEOUT=60
|
|
|
|
|
|
|
|
|
|
|
|
# 连接池使用率警告阈值(默认 70%)
|
|
|
|
|
|
# DB_POOL_WARN_THRESHOLD=70
|
|
|
|
|
|
|
|
|
|
|
|
# 批量余额查询并发限制(默认自动计算:连接池的 40%)
|
|
|
|
|
|
# 控制 Provider 余额查询的并发数,避免耗尽连接池
|
|
|
|
|
|
# BATCH_BALANCE_CONCURRENCY=8
|