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

相关推荐
闲不住的李先森1 小时前
AI 应用演进:从基础调用到自主智能体
人工智能·llm·aigc
新智元2 小时前
刚刚,英伟达新模型上线!4B 推理狂飙 53 倍,全新注意力架构超越 Mamba 2
人工智能·openai
新智元3 小时前
北大数学家终结 50 年猜想!一只蝴蝶翅膀,竟难倒菲尔兹奖得主
人工智能·openai
机器之心3 小时前
热议!DeepSeek V3.1惊现神秘「极」字Bug,模型故障了?
人工智能·openai
DisonTangor3 小时前
【字节拥抱开源】字节豆包团队开源豆包OSS大模型
人工智能·开源·aigc
尘叶心简4 小时前
从零开发一个Agent
aigc·openai
得物技术4 小时前
得物新商品审核链路建设分享
后端·架构·aigc
深度学习机器8 小时前
aisuite:统一的大模型SDK,简化LLM开发流程
chatgpt·llm·openai
Mintopia9 小时前
📡 大语言模型如何重塑 WebAI 的交互逻辑?
前端·javascript·aigc