feat(translate): 接入腾讯 MaaS u2 作为 TMT 备用翻译通道

新通道:腾讯 MaaS u2 模型(云知声),OpenAI 兼容协议
- 端点:https://maas-api.hivoice.cn/v1
- 模型:u2(翻译专用,实测 + 锁定 prompt 后译文质量稳定)
- 备用链路:TMT 配额耗尽 / TMT 失败时自动降级到 MaaS

关键 prompt 工程(锁定):
- 必须用 user 提供的固定中文 prompt,否则 u2 会把译文放进 reasoning_content 而 content 返乱码
- 限定只接 EN/JA → ZH
- 中文输入固定返回拒绝文案

新增/改动:
- backend/app/services/translation/tencent_maas.py: 新建
- backend/app/services/translation/service.py: 备用链 maas → local,初始化失败友好降级
- backend/app/config.py: 加 tencent_maas_* 4 个配置
- .env.example: 文档化
This commit is contained in:
Mavis
2026-06-09 17:33:45 +08:00
parent a5bfb7d49a
commit 3e56fed541
4 changed files with 227 additions and 24 deletions

View File

@@ -36,11 +36,21 @@ TENCENT_TMT_QUOTA_BUFFER=0.05
TENCENT_TMT_MAX_CHARS_PER_REQ=4500
# ===== 本地翻译(降级) =====
# 不启用就留空:不会用本地模
LOCAL_TRANSLATE_ENABLED=false
# 不启用就留空:不会用本地模<EFBFBD>?LOCAL_TRANSLATE_ENABLED=false
LOCAL_TRANSLATE_MODEL=nllb-200-distilled-600M
LOCAL_TRANSLATE_DEVICE=cpu
# ===== 腾讯 MaaS 翻译(备用通道,OpenAI 兼容协议)=====
# 申请:https://console.cloud.tencent.com/maas 或 hivoice 控制台
# 留空 api_key = 不启用(只在 TMT 配额耗尽/TMT 失败时启用)
# 端点固定为 https://maas-api.hivoice.cn/v1(腾讯 MaaS 翻译服务)
# 模型:u2(翻译专用,支持多语种)
TENCENT_MAAS_API_KEY=
TENCENT_MAAS_BASE_URL=https://maas-api.hivoice.cn/v1
TENCENT_MAAS_MODEL=u2
# 单次调用间隔(秒),避免被 MaaS 限流
TENCENT_MAAS_INTERVAL_SEC=1.0
# ===== 抓取 =====
# 全局 QPS 上限
FETCH_GLOBAL_QPS=4