#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ 修正泰语数据库中的翻译问题 重新翻译有问题的泰语内容 """ import sqlite3 import json import logging from typing import List, Dict from simple_chatbot import DoubaoAPI # 配置日志 logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') logger = logging.getLogger(__name__) # AI模型的API Key AI_API_KEY = "YOUR_DOUBAO_API_KEY" # 替换为实际的豆包API Key class ThaiTranslator: def __init__(self, api_key: str): self.doubao_api = DoubaoAPI(api_key) def translate_text(self, text: str) -> str: """使用AI模型翻译文本为泰语""" messages = [ {"role": "system", "content": "你是一个专业的翻译助手,请将用户提供的中文文本精确翻译成泰语。只返回翻译结果,不要包含任何额外信息。"}, {"role": "user", "content": text} ] try: translated_text = self.doubao_api.chat(messages, temperature=0.3, max_tokens=1000) return translated_text except Exception as e: logger.error(f"AI翻译失败: {e}") return f"[翻译失败: {text}]" def fix_thai_translation(): """修正泰语数据库中的翻译问题""" db_path = '/root/老业务网站8.30/backend/ai_agent_qa.db' try: conn = sqlite3.connect(db_path) cursor = conn.cursor() print("🇹🇭 开始修正泰语数据库翻译问题...") # 获取有问题的泰语记录 cursor.execute('SELECT question, answer FROM qa_pairs WHERE language = \"th\" AND (answer LIKE \"%[AI翻译]%\" OR answer LIKE \"%泰语%\")') problematic_records = cursor.fetchall() print(f"发现 {len(problematic_records)} 条有问题的泰语记录") # 创建翻译器 translator = ThaiTranslator(AI_API_KEY) # 修正每条记录 for i, (question, answer) in enumerate(problematic_records, 1): print(f"\n🔧 正在修正第 {i}/{len(problematic_records)} 条记录...") print(f"问题: {question}") # 提取中文内容 if "[AI翻译]" in answer: chinese_text = answer.split("[AI翻译]")[1].split("->")[0].strip() else: chinese_text = answer.split("泰语")[0].strip() print(f"中文内容: {chinese_text[:100]}...") # 翻译为泰语 thai_translation = translator.translate_text(chinese_text) print(f"泰语翻译: {thai_translation[:100]}...") # 更新数据库 cursor.execute('UPDATE qa_pairs SET answer = ? WHERE language = \"th\" AND question = ?', (thai_translation, question)) print(f"✅ 第 {i} 条记录修正完成") conn.commit() print(f"\n🎉 成功修正 {len(problematic_records)} 条泰语记录") # 验证修正结果 cursor.execute('SELECT COUNT(*) FROM qa_pairs WHERE language = \"th\" AND (answer LIKE \"%[AI翻译]%\" OR answer LIKE \"%泰语%\")') remaining_problems = cursor.fetchone()[0] print(f"📊 剩余问题记录数: {remaining_problems}") if remaining_problems == 0: print("✅ 所有泰语翻译问题已修正!") else: print("❌ 仍有翻译问题需要处理") return True except Exception as e: logger.error(f"修正泰语翻译失败: {e}") return False finally: if conn: conn.close() if __name__ == "__main__": print("🚀 开始修正泰语翻译问题...") success = fix_thai_translation() if success: print("🎉 泰语翻译修正完成!") else: print("💥 泰语翻译修正失败!")