TranslationAgent源码和架构分析

#TranslationAgent源码和架构分析 [TOC]

TranslationAgent概述

基于反思工作流的智能翻译Agent,模拟了人类翻译专家的思考过程,分成三个流程。 核心流程: 1.初始翻译:利用LLM对文本进行初步翻译,得到初步的翻译结果 2.翻译与改进:引导LLM对自身翻译结果进行反思,并提出修改意见,例如不准确、不流畅和语言习惯等问题 3.优化输出:根据LLM提出的改进意见对翻译结果再次进行优化,得到最终结果

完整流程图

TranslationAgent简单实践

安装配置环境

首先我们安装一下poetry依赖。

bash 复制代码
pip install poetry

拉取相关代码。

bash 复制代码
git clone https://github.com/andrewyng/translation-agent.git
cd translation-agent

接下来我们通过poetry应用进行安装软件,和虚拟环境的激活。

bash 复制代码
poetry install
poetry env activate

然后执行相关命令进行激活。

打开新的命令窗口执行这个命令并且退出conda的虚拟环境。

bash 复制代码
source /Users/hebo/Library/Caches/pypoetry/virtualenvs/translation-agent-1fCiI_fd-py3.11/bin/activate
conda deactivate

添加相关文档

首先准备我们的静夜思.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

然后在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}")

在执行之前注意添加好我们的OPENAI_API_KEY,接着我们开始运行:

bash 复制代码
export OPENAI_API_KEY=你的API key
python example_script.py

我们可以看到它可以很清楚的翻译成我们想要的中文古诗。 接着我们直接使用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)

源码解析:初始翻译

one_chunk_initial_translation:进行初始翻译 输入:原始文本 输出:初始译文

{source_lang}翻译为{target_lang},通过提示语"除了翻译之外,不要提供任何解释或文字"提升翻译的准确率(幻觉)

源码解析:结果反思

one_chunk_reflect_on_translation:对初始翻译结果进行反思,让LLM给出优化建议 输入:原始文本、初始译文 输出:反思改进建议

核心提示语: 翻译的最终风格要符合{coutry}口语的风格 准确性:纠正、遗留或者未翻译的错误 流畅性:语法、拼写和标点规则,避免重复 风格:对翻译过后的文本同时考虑文化背景 术语:确保术语的一致性 列出具体、有用且有建设性的建议,以改进翻译。

源码解析:结果改进

ne_chunk_improve_translation:根据反思结果重新改进初始 翻译结果,生成最终译文 输入:反思改进建议、原始文本、初始译文 输出:最终译文

核心提示语: 仔细阅读专家的建议和建设性批评 考虑准确性、流畅性、风格、术语、其他 只输出新的译文

优势和不足

优势: 1.基于反思工作流,翻译效果优于普通翻译工具 2.可定制化 不足 1.翻译效果依赖于LLM的智力 2.相比较商业翻译引擎在特定专业领域略显不足 3.使用有一定的门槛 4.基于固定流程,没有使用Agent自我思考的循环机制

相关推荐
Lululaurel10 小时前
提示工程深度解析:驾驭大语言模型的艺术与科学
人工智能·ai·aigc·提示词
win4r11 小时前
程序员福利!GitHub最火的Spec Kit项目深度解析:只需7条命令就能实现规格驱动开发,告别繁琐的PRD文档,让规范直接生成代码!支持Claude Cod
aigc·claude·vibecoding
袁庭新15 小时前
2025年09月总结
人工智能·aigc
_t16 小时前
关于AI Agent处理大量第三方集成的思路
openai·agent·mcp
用户5191495848451 天前
每个JavaScript开发者都应掌握的33个核心概念
人工智能·aigc
明月(Alioo)1 天前
用AI帮忙,开发刷题小程序:从零开始,构建微信小程序答题系统
微信小程序·开源·aigc
万少1 天前
v你真的会记笔记吗?AI的答案可能让你意外
aigc·openai·ai编程
三天哥1 天前
Sora 2为什么会火?
人工智能·gpt·ai·aigc·agi·ai视频·sora
IvanCodes2 天前
RTX 4090 加速国产 AIGC 视频生成:腾讯混元与阿里千问开源模型
人工智能·开源·aigc·音视频