多语言处理实施计划
快速实施步骤
第一步:添加语言检测到引擎入口(5分钟)
在 src/core/engine.py 的 process() 方法开始处添加:
async def process(
self,
user_input: str,
device_id: str,
user_id: Optional[str] = None
) -> MisesAnalyzeResult:
"""处理用户输入"""
# 🆕 语言检测(新增)
try:
from shared.src.chat.translation import get_translation_service
translator = get_translation_service()
detected_lang = await translator.detect_language(user_input)
logger.info(f"🌐 Detected language: {detected_lang} for input: {user_input[:50]}")
except Exception as e:
logger.debug(f"Language detection skipped: {e}")
detected_lang = None
# 继续原有流程...
第二步:添加用户语言偏好支持(10分钟)
2.1 修改 API 请求模型
# src/mcp/server.py
class AnalyzeRequest(BaseModel):
user_input: str
device_id: str
user_id: Optional[str] = None
preferred_language: Optional[str] = None # 🆕 新增
# ... 其他字段
2.2 在用户画像中存储语言偏好
# src/schemas/models.py
class UserProfile(BaseModel):
# ... 现有字段
preferred_language: str = "zh-CN" # 🆕 新增
detected_languages: List[str] = [] # 🆕 历史语言
第三步:实现翻译回复(15分钟)
在引擎返回结果前,如果用户偏好语言与回复语言不同,则翻译:
# src/core/engine.py
async def process(...):
# ... 原有处理逻辑
result = await self._process_stage(...)
# 🆕 翻译回复(如果需要)
if user_language and user_language != "zh-CN":
try:
translator = get_translation_service()
translated = await translator.translate(
result.answer,
target_language=user_language,
source_language="zh-CN"
)
if translated:
result.answer = translated["translated_text"]
logger.info(f"🌐 Translated answer to {user_language}")
except Exception as e:
logger.warning(f"Translation failed: {e}")
return result
第四步:更新 API 端点(10分钟)
# src/mcp/server.py
@mcp_router.post("/analyze")
async def rest_analyze(request: AnalyzeRequest):
"""智能分析"""
# 🆕 获取用户语言偏好
user_language = request.preferred_language
if not user_language and request.user_id:
# 从用户画像获取
profile = await get_user_profile(request.user_id)
user_language = profile.preferred_language if profile else None
# 调用引擎(传入语言偏好)
result = await engine.process(
user_input=request.user_input,
device_id=request.device_id,
user_id=request.user_id,
user_language=user_language # 🆕 传入语言偏好
)
return result.model_dump()
完整实施清单
- 第一步:添加语言检测
- 第二步:添加用户语言偏好支持
- 第三步:实现翻译回复
- 第四步:更新 API 端点
- 测试:多语言输入测试
- 测试:翻译质量测试
- 文档:更新 API 文档
预期效果
实施后,系统将能够:
- ✅ 自动检测用户输入语言
- ✅ 支持用户指定偏好语言
- ✅ 自动翻译回复到用户偏好语言
- ✅ 记录用户语言使用模式
注意事项
- 性能考虑:语言检测和翻译会增加延迟,考虑异步处理或缓存
- 翻译质量:使用高质量的翻译服务(如 DeepL API)
- 成本控制:翻译 API 可能有调用费用,需要监控
- 用户体验:允许用户选择是否启用自动翻译