Aphra是一种开源翻译代理,旨在通过利用大型语言模型(LLM)来提高文本翻译的质量。与仅依靠直接翻译的传统翻译工具不同,Aphra引入了一个多阶段,上下文感知的过程,其中包括词汇表创建,上下文搜索,批评和改进。这种方法旨在产生不仅保留原始含义的翻译,还结合了翻译笔记,上下文调整和风格改进。无论您是翻译博客文章,文章还是复杂的文档,Aphra都确保更细微,更准确的翻译尊重原始内容的完整性。
重要说明: Aphra并不是要取代专业翻译的工作。取而代之的是,它旨在促进在雇用专业翻译不可行的小型项目中进行多语言支持。 Aphra提供了一种实用的解决方案,可以在完全专业的翻译服务范围内实现质量翻译,从而确保语言障碍不会阻碍您内容的全球范围。
演示·报告错误·请求功能·Wiki
动机
为什么阿弗拉?
Aphra的工作原理
演示
入门
定制性和扩展的想法
执照
贡献
参考
开始该项目的火花来自渴望通过从头开始设计复杂的代理工作流来挑战自己。这里的主要目标是通过从头开始构建类似的过程来学习和成长。我之所以选择翻译的主题,是因为我一直在嘲笑用英语发布我的个人博客的想法。我已经成功地将Aphra整合到了出版物管道中,使翻译成为该过程的无缝部分。如果您对如何实现这一目标感兴趣,则可以在Wiki中找到详细的指南。
作为计算机科学老师,我还认为这是创建一个遵循Github上出版的最佳实践的小型但完整的开源项目的绝佳机会。这就是为什么有这么多选项可以开始的原因,所有这些都以教学方法为主题的原因。关于如何在该领域改进的任何反馈都非常受欢迎。
“ Aphra”这个名字是对Aphra Behn的致敬,Aphra Behn是最早通过17世纪写作谋生的英国妇女之一。贝恩(Behn)是一位剧作家,诗人和翻译者,他打破了重要的文化障碍,使她成为文学女性的早期先驱。
在Aphra Behn之后命名该项目是一种尊重她挑战现状并塑造我们对语言和表达的方式的遗产的一种方式。她的影响使我们想起了创造空间的重要性,可以听到声音,想法可以蓬勃发展。
正如弗吉尼亚·伍尔夫(Virginia Woolf)所说的那样:“所有的女人在一起,都应该让鲜花落在阿弗拉·贝(Aphra Behn)的坟墓上……因为是她赢得了他们说出自己的想法的权利”(弗吉尼亚州伍尔夫。
Aphra采用了一种多阶段,代理的翻译方法,旨在密切模仿人类翻译人员在处理文本时可能采取的步骤。这是过程的发展:

这种结构化的方法使Aphra能够产生不仅在语言上还精确的翻译,而且在上下文上也很丰富,这是旨在在没有资源的情况下雇用专业翻译人员的小型项目的宝贵工具。
您可以在这里测试Aphra:https://huggingface.co/spaces/davidlms/aphra。
要开始使用Aphra,请按照以下步骤:
确保系统上安装了以下内容:
git (用于克隆存储库)pip (Python软件包安装程序)在进行配置或安装之前,您需要克隆存储库。这是所有安装方法所需的常见步骤。
克隆存储库:
git clone https://github.com/DavidLMS/aphra.git导航到项目目录:
cd aphra复制示例配置文件:
cp config.example.toml config.toml编辑config.toml添加您的OpenRouter API键和所需的模型名称。
配置config.toml文件后,您可以:
注意:如果选择进行安装,请记住使用APHRA将
config.toml文件移至脚本的位置,或在调用函数时直接指定其路径。
pip本地安装如果您不需要将其依赖关系与其他项目隔离,则此选项是安装Aphra的最简单方法。它使用pip直接在系统上安装软件包,PIP是Python的标准软件包管理器。
pip install . 诗歌是Python的依赖性管理和包装工具,可帮助您更有效地管理项目的依赖关系。它还简化了包装Python项目的过程。
如果您还没有安装诗歌:
curl -sSL https://install.python-poetry.org | python3 -安装依赖项和软件包:
poetry install激活诗歌创造的虚拟环境:
poetry shell虚拟环境是一个孤立的环境,可让您与系统的Python安装分开安装软件包。这对于避免不同项目要求的软件包之间的冲突特别有用。
创建并激活虚拟环境:
python -m venv aphra
source aphra/bin/activate # On Windows: aphraScriptsactivate删除文件pyproject.toml:
rm pyproject.toml在本地安装软件包:
pip install . Docker是一个平台,可让您将应用程序及其依赖项包装到“容器”中。该容器可以在不同的环境中持续运行,使其非常适合确保您的项目在任何机器上使用相同的方式工作。
构建Docker图像:
docker build -t aphra .注意:如果在构建过程中遇到权限错误,请尝试使用
sudo运行命令。
确保输入脚本具有执行权限。运行以下命令:
chmod +x entrypoint.sh对于Windows用户:您可以使用Git Bash或WSL(Linux的Windows子系统)添加执行权限。如果您使用的是PowerShell或命令提示符,则可能不需要更改权限,而是确保脚本在环境中可执行。
了解docker run命令:
-v $(pwd):/workspace :此选项将您的当前目录( $(pwd)安装在Unix式系统中,Windows中的%cd% )登录到容器内的/workspace目录。这允许容器访问当前目录中的文件。aphra :这是您在步骤1中构建的Docker图像的名称。English Spanish :这些是翻译的来源和目标语言。用所需的语言代替它们。input.md :这是主机计算机上输入文件的路径。output.md :这是将翻译输出保存在主机计算机上的路径。运行Docker容器:
docker run -v $( pwd ) :/workspace aphra English Spanish input.md output.md通过打印输出文件的内容来显示翻译:
cat output.mdGet-Content output.md type output.md您可以使用aphra_runner.py脚本直接从终端运行Aphra。这对于作为较大的工作流程或管道的一部分自动化翻译特别有用。
要从命令行转换文件,请使用以下语法:
python aphra_runner.py < config_file > < source_language > < target_language > < input_file > < output_file ><config_file> :包含API键和模型设置的配置文件的路径(例如, config.toml )。<source_language> :输入文本的语言(例如“西班牙语”)。<target_language> :要将文本转换为(例如“英语”)的语言。<input_file> :输入文件的路径,其中包含要翻译的文本。<output_file> :将保存翻译的文本的路径。例子:
python aphra_runner.py config.toml Spanish English input.md output.md在此示例中:
config.toml 。input.md中的文本从西班牙语翻译成英文。output.md 。 如果您希望在Python代码中直接使用APHRA, translate功能允许您使用配置的语言模型将文本从一种语言转换为另一种语言。该功能采用以下参数:
source_language :输入文本的语言(例如“西班牙语”)。target_language :要将文本转换为(例如“英语”)的语言。text :您要翻译的文字。config_file :包含API键和模型设置的配置文件的路径。默认为“ config.toml”。log_calls :一个布尔值,指示是否要记录API进行调试目的。默认为False 。这是您可以以通用方式使用translate功能的方式:
from aphra import translate
translation = translate ( source_language = 'source_language' ,
target_language = 'target_language' ,
text = 'text_to_translate' ,
config_file = 'config.toml' ,
log_calls = False )
print ( translation )假设您想将句子“ Hola Mundo”从西班牙语翻译成英语。代码看起来像这样:
from aphra import translate
translation = translate ( source_language = 'Spanish' ,
target_language = 'English' ,
text = 'Hola mundo' ,
config_file = 'config.toml' ,
log_calls = False )
print ( translation )如果您有一个包含要翻译的文本的Markdown文件( input.md ),则可以读取文件,翻译其内容,然后打印结果或将其保存到另一个文件中。以下是:
from aphra import translate
# Read the content from the Markdown file
with open ( 'input.md' , 'r' , encoding = 'utf-8' ) as file :
text_to_translate = file . read ()
# Translate the content from Spanish to English
translation = translate ( source_language = 'Spanish' ,
target_language = 'English' ,
text = text_to_translate ,
config_file = 'config.toml' ,
log_calls = False )
# Print the translation or save it to a file
print ( translation )
with open ( 'output.md' , 'w' , encoding = 'utf-8' ) as output_file :
output_file . write ( translation )在此示例中:
input.md读取文本。output.md 。 Aphra的设计具有灵活性,使您易于根据您的特定需求进行量身定制。自定义APHRA的最简单方法是维护定义的呼叫流并修改每个步骤中prompts夹中的提示。这种方法使您可以在大多数用例中将输出调整为所需的结果。
如果您需要修改流本身,则需要深入translate.py中的代码。尽管这更复杂,但对于那些希望扩展Aphra功能的人来说,这是完全可行的。
以下是一些进一步扩展的想法:
可以随意进行实验并以适合您的项目和想法的方式扩展Aphra。
Aphra根据MIT许可发布。您可以免费使用,修改和分发代码,以出于商业和非商业目的。
欢迎对Aphra的贡献!无论是改进代码,增强文档还是建议新功能,您的输入都是有价值的。请查看贡献.md文件,以获取有关如何入门并使您的贡献计算的指南。