TranslationAgent源码和架构分析 电脑版发表于:2025/8/26 13:45  >#TranslationAgent源码和架构分析 [TOC] TranslationAgent概述 ------------ tn2>基于反思工作流的智能翻译Agent,模拟了人类翻译专家的思考过程,分成三个流程。 核心流程: 1.初始翻译:利用LLM对文本进行初步翻译,得到初步的翻译结果 2.翻译与改进:引导LLM对自身翻译结果进行反思,并提出修改意见,例如不准确、不流畅和语言习惯等问题 3.优化输出:根据LLM提出的改进意见对翻译结果再次进行优化,得到最终结果 ### 完整流程图  TranslationAgent简单实践 ------------ ### 安装配置环境 tn2>首先我们安装一下`poetry`依赖。 ```bash pip install poetry ```  tn2>拉取相关代码。 ```bash git clone https://github.com/andrewyng/translation-agent.git cd translation-agent ``` tn2>接下来我们通过poetry应用进行安装软件,和虚拟环境的激活。 ```bash poetry install poetry env activate ``` tn2>然后执行相关命令进行激活。  tn2>打开新的命令窗口执行这个命令并且退出conda的虚拟环境。 ```bash source /Users/hebo/Library/Caches/pypoetry/virtualenvs/translation-agent-1fCiI_fd-py3.11/bin/activate conda deactivate ```  ### 添加相关文档 tn2>首先准备我们的`静夜思.txt`文本,放入`translation-agent/examples/sample-texts`下面。 ```bash Thoughts on a Quiet Night \n The moonlight shines before my bed, like frost upon the ground.\n I look up to see the moon, then lower my gaze, overwhelmed by homesickness.\n ``` tn2>然后在`translation-agent/examples`下面创建我们的`example_script.py`文件,下面是一个简单的`translation_agent`的一个示例,主要是将英文翻译成中文,示例文本如下: ```python import os import translation_agent as ta if __name__ == "__main__": source_lang, target_lang, country = "English", "Chinese", "China" relative_path = "sample-texts/静夜思.txt" script_dir = os.path.dirname(os.path.abspath(__file__)) full_path = os.path.join(script_dir, relative_path) with open(full_path, encoding="utf-8") as file: source_text = file.read() print(f"Source text:\n\n{source_text}\n------------\n") translation = ta.translate( source_lang=source_lang, target_lang=target_lang, source_text=source_text, country=country, ) print(f"Translation:\n\n{translation}") ``` tn2>在执行之前注意添加好我们的`OPENAI_API_KEY`,接着我们开始运行: ```bash export OPENAI_API_KEY=你的API key python example_script.py ```  tn2>我们可以看到它可以很清楚的翻译成我们想要的中文古诗。 接着我们直接使用`gpt-4o-mini`使用会发现它的效果其实没有那么好。 ```bash from openai import OpenAI client = OpenAI( api_key="你的api key", ) completion = client.chat.completions.create( model="gpt-4o-mini", messages=[ { "role": "system", "content": "将以下英文翻译成中文", }, { "role": "user", "content": "Thoughts on a Quiet Night\nThe moonlight shines before my bed, like frost upon the ground.\nI look up to see the moon, then lower my gaze, overwhelmed by homesickness.", }, ], ) print(completion.choices[0].message.content) ```  ### 源码解析:初始翻译 tn2>one_chunk_initial_translation:进行初始翻译 输入:原始文本 输出:初始译文  tn2>从`{source_lang}`翻译为`{target_lang}`,通过提示语“除了翻译之外,不要提供任何解释或文字”提升翻译的准确率(幻觉) ### 源码解析:结果反思 tn2>one_chunk_reflect_on_translation:对初始翻译结果进行反思,让LLM给出优化建议 输入:原始文本、初始译文 输出:反思改进建议  tn2>核心提示语: 翻译的最终风格要符合`{coutry}`口语的风格 准确性:纠正、遗留或者未翻译的错误 流畅性:语法、拼写和标点规则,避免重复 风格:对翻译过后的文本同时考虑文化背景 术语:确保术语的一致性 列出具体、有用且有建设性的建议,以改进翻译。 ### 源码解析:结果改进 tn2>ne_chunk_improve_translation:根据反思结果重新改进初始 翻译结果,生成最终译文 输入:反思改进建议、原始文本、初始译文 输出:最终译文  tn2>核心提示语: 仔细阅读专家的建议和建设性批评 考虑准确性、流畅性、风格、术语、其他 只输出新的译文 ### 优势和不足 tn2>优势: 1.基于反思工作流,翻译效果优于普通翻译工具 2.可定制化 不足 1.翻译效果依赖于LLM的智力 2.相比较商业翻译引擎在特定专业领域略显不足 3.使用有一定的门槛 4.基于固定流程,没有使用Agent自我思考的循环机制