fix(staging): 补 DOUBAO_API_KEY 环境变量配置(修复 AI 服务 502) #1958

Merged
xiaoxia merged 1 commits from fix/staging-doubao-key into develop 2026-09-16 12:20:53 +08:00
Owner

问题

近期 PR 添加了 ai-rewrite / extract-from-douyin / 数字人口型等 AI 端点,它们调用 get_doubao_client(),但 deploy/configs/.env.staging、render_env.sh、ci-pipeline.yml 都没把 DOUBAO_API_KEY/MODEL/BASE_URL 传到 staging 容器,导致 is_available=False → 所有 AI 端点返回 502 "AI 服务不可用"。

修复

  1. .env.staging/.env.production 模板加 DOUBAO_API_KEY/MODEL/BASE_URL/TIMEOUT/MAX_RETRIES
  2. render_env.sh SHARED_SECRETS 加 DOUBAO_*
  3. ci-pipeline.yml deploy-staging 步骤传 DOUBAO secrets
  4. Gitea Actions Secrets 已添加 DOUBAO_API_KEY / DOUBAO_MODEL / DOUBAO_BASE_URL

验证

  • render_env.sh 本地渲染 19 变量全部替换成功
  • 15523 单测全绿
## 问题 近期 PR 添加了 ai-rewrite / extract-from-douyin / 数字人口型等 AI 端点,它们调用 get_doubao_client(),但 deploy/configs/.env.staging、render_env.sh、ci-pipeline.yml 都没把 DOUBAO_API_KEY/MODEL/BASE_URL 传到 staging 容器,导致 is_available=False → 所有 AI 端点返回 502 "AI 服务不可用"。 ## 修复 1. .env.staging/.env.production 模板加 DOUBAO_API_KEY/MODEL/BASE_URL/TIMEOUT/MAX_RETRIES 2. render_env.sh SHARED_SECRETS 加 DOUBAO_* 3. ci-pipeline.yml deploy-staging 步骤传 DOUBAO secrets 4. Gitea Actions Secrets 已添加 DOUBAO_API_KEY / DOUBAO_MODEL / DOUBAO_BASE_URL ## 验证 - render_env.sh 本地渲染 19 变量全部替换成功 - 15523 单测全绿
xiaoxia added 1 commit 2026-09-16 11:55:00 +08:00
fix(staging): add DOUBAO_API_KEY to CI env render (fix 502 AI unavailable)
CI/CD Pipeline / Check push changed paths (pull_request) Has been skipped
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 2s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 2s
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / PR Build Web Image (pull_request) Has been skipped
CI/CD Pipeline / Frontend Lint (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 42s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m26s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 1m45s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m3s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 4m22s
CI/CD Pipeline / Validate - Style (pull_request) Successful in 4m45s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 4m47s
AI Code Review / AI Code Review (pull_request) Successful in 6m36s
CI/CD Pipeline / Validate - Security (pull_request) Successful in 9m52s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 11m10s
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / CI Gate (pull_request) Successful in 4s
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / Canary Release to Production (pull_request) Has been skipped
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 10m54s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Successful in 14s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 36s
300f4b2abd
Root cause: Doubao (ARK) AI client configuration was missing from staging .env
template and CI render pipeline. The DOUBAO_API_KEY/MODEL/BASE_URL variables
were added to packages/config/api_settings.py but never wired through
deploy/configs/.env.staging, render_env.sh shared secrets, or ci-pipeline.yml.

After recent PRs that added AI endpoints (ai-rewrite, extract-from-douyin,
lipsync/digital-human) calling get_doubao_client(), is_available returned False
because settings.doubao_api_key was empty → all AI routes returned 502.

Fix:
1. deploy/configs/.env.staging: add DOUBAO_API_KEY/MODEL/BASE_URL/TIMEOUT/MAX_RETRIES
2. deploy/configs/.env.production: same (for prod parity)
3. scripts/render_env.sh: add DOUBAO_API_KEY/MODEL/BASE_URL to SHARED_SECRETS
4. .gitea/workflows/ci-pipeline.yml: pass DOUBAO secrets to deploy-staging env
5. Gitea Actions secrets: DOUBAO_API_KEY/MODEL/BASE_URL added (already set)

Verified render_env.sh produces correct .env.rendered with all 19 vars substituted.
Full unit test suite: 15523 passed.

🚀 预览环境已部署

项目 详情
PR号 #1958
预览链接 https://pr-1958.preview.xiaoxiajianji.com
API环境 staging

💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。

🔄 每次提交新代码后预览环境会自动更新。

🗑️ PR 关闭或合并后,预览环境会自动清理。

🚀 **预览环境已部署** | 项目 | 详情 | |------|------| | PR号 | #1958 | | 预览链接 | [https://pr-1958.preview.xiaoxiajianji.com](https://pr-1958.preview.xiaoxiajianji.com) | | API环境 | staging | > 💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。 > > 🔄 每次提交新代码后预览环境会自动更新。 > > 🗑️ PR 关闭或合并后,预览环境会自动清理。
xiaoxia merged commit fc99b5a080 into develop 2026-09-16 12:20:53 +08:00

🗑️ 预览环境已清理

PR #1958 已关闭或合并,对应的预览环境已被清理。

如有需要,可以重新打开 PR 来重新生成预览环境。

🗑️ **预览环境已清理** PR #1958 已关闭或合并,对应的预览环境已被清理。 > 如有需要,可以重新打开 PR 来重新生成预览环境。
Sign in to join this conversation.