LLMClient 改为供应商链模式: - 主供应商 + GAOKAO_LLM_FALLBACK_MODELS/PROVIDERS/API_KEYS/BASE_URLS - 按顺序尝试, 第一个成功即返回 - 全部失败时抛出聚合错误(含供应商数量和最后错误) 配置层: - Settings 新增 4 个 fallback 字段 - load_settings() 读取对应环境变量 新增测试(4 个): - test_fallback_config_parsed: 验证 fallback 链解析正确 - test_fallback_no_config: 无 fallback 时只有主供应商 - test_fallback_falls_through_to_second_provider: 主失败自动切换 - test_fallback_all_fail_raises: 全部失败抛聚合错误 部署示例: .env.docker.example / .env.payment.example 补充注释掉的 fallback 模板 验证: data/llm/tests 16 passed, admin/tests 40 passed
68 lines
2.5 KiB
Plaintext
68 lines
2.5 KiB
Plaintext
# 支付宝真实凭据环境变量模板
|
||
# 复制为 .env.payment 并填写真实值后 source 使用
|
||
# 正式上线前必须完成一次真实 acceptance
|
||
|
||
# ===== LLM 供应商(自动生成志愿方案所必需) =====
|
||
# 当前产品要求系统内自动调用 LLM 完成审核/冲稳保/完整规划。
|
||
# 生产环境禁止 provider=none。
|
||
GAOKAO_LLM_PROVIDER=none
|
||
GAOKAO_LLM_API_KEY=
|
||
# 默认 DashScope OpenAI-compatible;若用 OpenAI 则改为 https://api.openai.com/v1
|
||
GAOKAO_LLM_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
|
||
GAOKAO_LLM_MODEL=qwen-plus
|
||
GAOKAO_LLM_TIMEOUT=60
|
||
GAOKAO_LLM_MAX_TOKENS=4096
|
||
# 可选:多模型 fallback(逗号分隔,主供应商失败时按顺序尝试)
|
||
# GAOKAO_LLM_FALLBACK_MODELS=gpt-4o-mini,deepseek-chat
|
||
# GAOKAO_LLM_FALLBACK_PROVIDERS=openai,deepseek
|
||
# GAOKAO_LLM_FALLBACK_API_KEYS=sk-openai-key,sk-deepseek-key
|
||
# GAOKAO_LLM_FALLBACK_BASE_URLS=https://api.openai.com/v1,https://api.deepseek.com/v1
|
||
|
||
# ===== 支付/安全/运营 =====
|
||
GAOKAO_PAYMENT_APP_ID=
|
||
|
||
# 商户 ID(支付宝商户平台 → 账户管理)
|
||
GAOKAO_PAYMENT_MERCHANT_ID=
|
||
|
||
# 应用私钥文件路径(RSA2)
|
||
# 生成方式: openssl genrsa -out app_private_key.pem 2048
|
||
GAOKAO_PAYMENT_PRIVATE_KEY_PATH=
|
||
|
||
# 支付宝公钥文件路径
|
||
# 从支付宝开放平台 → 应用管理 → 接口加签方式 → 查看支付宝公钥
|
||
GAOKAO_PAYMENT_ALIPAY_PUBLIC_KEY_PATH=
|
||
|
||
# 异步通知 URL(必须是公网可访问的 HTTPS 地址)
|
||
# 格式: https://your-domain.com/pay/alipay/notify
|
||
GAOKAO_PAYMENT_NOTIFY_URL=
|
||
|
||
# 同步返回 URL(支付完成后浏览器跳转)
|
||
# 格式: https://your-domain.com/pay/alipay/return
|
||
GAOKAO_PAYMENT_RETURN_URL=
|
||
|
||
# 支付服务商(固定为 alipay,切换到真实支付)
|
||
GAOKAO_PAYMENT_PROVIDER=alipay
|
||
|
||
# 支付网关基础 URL
|
||
# 沙箱: https://openapi-sandbox.dl.alipaydev.com/gateway.do
|
||
# 生产: https://openapi.alipay.com/gateway.do
|
||
GAOKAO_PAYMENT_BASE_URL=
|
||
|
||
# Webhook 签名验证密钥
|
||
GAOKAO_PAYMENT_WEBHOOK_SECRET=
|
||
|
||
# 订单加密密钥(Fernet)
|
||
# 生成方式: python3 -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())"
|
||
GAOKAO_ORDERS_FERNET_KEY=
|
||
|
||
# JWT Secret(至少 32 字符)
|
||
# 生成方式: python3 -c "import secrets; print(secrets.token_hex(32))"
|
||
GAOKAO_JWT_SECRET=
|
||
|
||
# Portal Token Secret(至少 32 字符,必须与 JWT_SECRET 不同)
|
||
# 生成方式: python3 -c "import secrets; print(secrets.token_hex(32))"
|
||
GAOKAO_PORTAL_TOKEN_SECRET=
|
||
|
||
# 管理员密码(至少 10 字符,覆盖 3 类字符)
|
||
GAOKAO_ADMIN_PASS=
|