Commit b8b6497c by luoqi

chore(deploy): env 补齐 AI 多提供方(Qwen/DashScope/Gemini),不止 DeepSeek

configuration.ts 早已读 QWEN_API_KEY/DASHSCOPE_API_KEY/GEMINI_API_KEY(生产四把 key 全在用),
但 .env.example 只列了 DeepSeek,gen-env 也漏了 → 换新环境会漏配 qwen 话术/实时教练。
- .env.example:补 Qwen(话术可选 provider)+ DashScope/Gemini(实时坐席教练,可选)。
- gen-env.sh:DEEPSEEK+QWEN 必填(__FILL_ME__),DASHSCOPE/GEMINI 可选(留空不报占位)。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
parent bc2fc77e
Pipeline #3360 failed in 0 seconds
......@@ -72,6 +72,21 @@ AI_DEFAULT_MODEL=deepseek-v4-flash
AI_REQUEST_TIMEOUT_SEC=60
# ── Qwen(通义千问 / DashScope)—— 话术生成的可选 provider(部分调用路由到 qwen)──
# Key 从 https://bailian.console.aliyun.com/ 取(DashScope);QWEN_API_KEY 不设则回退 DASHSCOPE_API_KEY。
# 生产已在用 → 建议配。model/base_url 留空走代码默认(qwen3.7-max / dashscope compatible-mode)。
QWEN_API_KEY=
# QWEN_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
# QWEN_DEFAULT_MODEL=qwen3.7-max
# ── 实时坐席辅助教练(可选功能;不用语音实时教练可留空)──
# DashScope 实时(qwen-omni)+ Gemini Live 二选一/互备。
DASHSCOPE_API_KEY=
# QWEN_OMNI_MODEL=qwen3-omni-flash-realtime
GEMINI_API_KEY=
# GEMINI_DEFAULT_MODEL=gemini-3.5-flash
# GEMINI_LIVE_MODEL=gemini-3.1-flash-live-preview
# 价格表(¥/M tokens)— 调价时改这里重启;不配走默认
# AI_PRICE_TABLE_JSON={"deepseek-v4-pro":{"inHit":0.5,"inMiss":3.6,"out":25},"deepseek-v4-flash":{"inHit":0.07,"inMiss":0.5,"out":2}}
......
......@@ -69,10 +69,13 @@ set_kv PAC_INCREMENTAL_CRON "" "$SVC" # 留空=自动发现各 manife
set_kv PAC_WX_AIBOT_DEMO_PUSH "" "$SVC" # 生产必空:不暴露裸推送端点
# ── ③ 业务值:环境变量有则注入,无则占位 ──
inject() { # inject KEY ENVVAR_VALUE
inject() { # inject KEY ENVVAR_VALUE —— 必填:没值则留 __FILL_ME__ 占位并在末尾报告
local key="$1" v="${2:-}"
set_kv "$key" "${v:-$PH}" "$SVC"
}
inject_opt() { # inject_opt KEY ENVVAR_VALUE —— 可选:有值就写,没值留空(不报占位)
set_kv "$1" "${2:-}" "$SVC"
}
inject POSTGRES_PASSWORD "${POSTGRES_PASSWORD:-}"
# compose 内置 redis 走内网 redis:6379(compose 会覆盖 pac-service 的 REDIS_URL);走托管则传环境变量覆盖
inject REDIS_URL "${REDIS_URL:-redis://redis:6379}"
......@@ -81,6 +84,9 @@ inject DW_CLICKHOUSE_DATABASE "${DW_CLICKHOUSE_DATABASE:-dw_group}"
inject DW_CLICKHOUSE_USERNAME "${DW_CLICKHOUSE_USERNAME:-}"
inject DW_CLICKHOUSE_PASSWORD "${DW_CLICKHOUSE_PASSWORD:-}"
inject DEEPSEEK_API_KEY "${DEEPSEEK_API_KEY:-}"
inject QWEN_API_KEY "${QWEN_API_KEY:-}" # 话术生成可选 provider,生产在用 → 建议填
inject_opt DASHSCOPE_API_KEY "${DASHSCOPE_API_KEY:-}" # 实时坐席教练(可选,不用留空)
inject_opt GEMINI_API_KEY "${GEMINI_API_KEY:-}" # 实时坐席教练(可选,不用留空)
inject ALERT_WEBHOOK_URL "${ALERT_WEBHOOK_URL:-}"
# DATABASE_URL:显式给了就用;否则若给了库密码,按 compose 内部网络(host=postgres)拼一个
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment