使用国际版配置(USE_DASHSCOPE_INTL=true)时:
日志显示:
[request_id] ⚠️ STT未识别到文本,使用默认
识别文本长度: 0字
API Key 不匹配
国内版(北京地域)和国际版(新加坡地域)的 API Key 是在不同地域申请的,互不通用。
当设置 USE_DASHSCOPE_INTL=true 时:
dashscope-intl.aliyuncs.com(正确)导致:
在 .env 中根据地域设置对应的 key:
# 使用国内版
DASHSCOPE_API_KEY=sk-beijing-xxx
USE_DASHSCOPE_INTL=false
# 切换到国际版时,需要手动改 key
DASHSCOPE_API_KEY=sk-singapore-xxx
USE_DASHSCOPE_INTL=true
已实现,在 .env 中同时配置:
# 国内版 key(北京地域申请)
DASHSCOPE_API_KEY=sk-beijing-xxx
# 国际版 key(新加坡地域申请)
DASHSCOPE_API_KEY_INTL=sk-singapore-xxx
# 切换地域(自动使用对应的 key)
USE_DASHSCOPE_INTL=false # 或 true
系统会自动使用:
USE_DASHSCOPE_INTL=false → 使用 DASHSCOPE_API_KEYUSE_DASHSCOPE_INTL=true → 使用 DASHSCOPE_API_KEY_INTL(如果配置了)添加 active_dashscope_api_key 属性:
@property
def active_dashscope_api_key(self) -> str:
"""获取当前激活的API Key(根据国际版/国内版自动选择)"""
if self.use_dashscope_intl and self.dashscope_api_key_intl:
return self.dashscope_api_key_intl
return self.dashscope_api_key
STT 使用动态 key:
dashscope.api_key = settings.active_dashscope_api_key
LLM/TTS 使用动态 key:
dashscope.api_key = settings.active_dashscope_api_key
该测试脚本成功的关键:
# 明确使用国际版 key
dashscope.api_key = "sk-28defb4cde1c440c9f26191b0c781aaf"
# 明确使用国际版 URL
url='wss://dashscope-intl.aliyuncs.com/api-ws/v1/realtime'
Key 和 URL 匹配,所以成功。
在 .env 中配置:
DASHSCOPE_API_KEY=sk-国内版key
DASHSCOPE_API_KEY_INTL=sk-28defb4cde1c440c9f26191b0c781aaf
USE_DASHSCOPE_INTL=true
bash
python main.py
观察日志:
🔧 预解析DNS (dashscope-intl.aliyuncs.com)...
[request_id] 🔗 STT连接已打开
[request_id] 💬 STT识别(⏳中间): xxx # 应该有识别结果
[request_id] ✓ STT识别完成: "xxx" (长度: xx字)
dashscope.aliyuncs.com + 北京 key ✅dashscope-intl.aliyuncs.com + 新加坡 key ✅dashscope-intl.aliyuncs.com + 北京 key ❌active_dashscope_api_key 自动选择正确的 key