# ==================== 必须配置(启动前) ==================== # 以下配置项必须在项目启动前设置 # 数据库配置 DB_HOST=localhost DB_PORT=5432 DB_USER=postgres DB_NAME=aether DB_PASSWORD=your_secure_password_here # Redis 配置 REDIS_HOST=localhost REDIS_PORT=6379 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 # CORS 配置(允许跨域的源,多个源用逗号分隔) # 示例: http://localhost:3000,https://example.com # 默认: * (允许所有源) # CORS_ORIGINS=* # ==================== 超时配置 ==================== # 以下配置控制各种超时行为,影响故障转移和请求处理 # --- 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 # ==================== 数据库连接池配置 ==================== # 连接池大小直接影响并发能力,特别是流式请求场景 # 每个流式请求会占用一个连接直到响应完成 # 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