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自我思考的循环机制

相关推荐
Csvn14 小时前
线上出问题怎么查?一套可复现的排障 SOP(O04)
人工智能·aigc·agent
小虎AI生活14 小时前
把重复工作流派给 AI 的完整方法:四样要素、固定熟手与定时任务
aigc·ai编程
Dawson Zhu15 小时前
《Agentic Design Patterns》第 9 章导读:学习与适应(Learning and Adaptation)
人工智能·语言模型·架构·aigc·agi
302wanger16 小时前
和raft.build一起叨逼叨
aigc
麦客奥德彪17 小时前
Codex 最近只有约 25 token/s,我做了个插件,把 ChatGPT 接进 DSH
openai·ai编程·deepseek
JavaGuide17 小时前
最近爆火的 Muse 浙大开源版 nanoMuse,来了!
aigc·openai·ai编程
ServBay17 小时前
不会写代码,如何搭建自己的 AI 自动化工作流
后端·aigc·ai编程
Lambert28118 小时前
SAA 停摆的答案:前团队的 ARGI 我上手跑了一遍,缝了三针才跑通
后端·openai·ai编程
JEECG官方18 小时前
Nano Banana 2.1 深度实测:4K 直出、中文排版大进步,连续改图的坑也要看清
aigc
用户2504581060918 小时前
AI智能体正在改变软件开发方式,但距离完全自主编程还有多远?
aigc·agent