🎈学习日记|Day20:使用Python和ChatGPT构建翻译API
00 分钟
2023-5-11
2023-8-26
type
status
slug
summary
date
tags
category
password
Text
AI summary
AI custom autofill
Multi-select
Status
URL
hashtag
勘误
标签
标题
类型
贴文
🪄
icon
本文介绍了如何使用Python和ChatGPT构建翻译API。ChatGPT是一种功能齐全的工具包,可用于执行各种任务,包括文本翻译。它可以帮助人们更好地理解不同语言之间的相似性和差异性,并促进人类之间的交流和理解。与DeepL相比,ChatGPT成本更低,性价比更高。本文还介绍了如何设置项目,添加OpenAI API密钥,添加POST路由和添加额外的上下文。最后,我们还讨论了何时使用DeepL。如果您正在构建使用翻译的软件,为什么不考虑让ChatGPT成为您的翻译后端呢?
 

 
ChatGPT已经成为自然语言处理的瑞士军刀。它是一种功能齐全的工具包,可用于执行各种任务,包括文本翻译。它可以帮助人们更好地理解不同语言之间的相似性和差异性,并促进人类之间的交流和理解。
使用ChatGPT进行翻译是非常简单和方便的。只需将需要翻译的文本输入到ChatGPT中,然后选择目标语言即可。ChatGPT会自动将文本翻译成所需的语言,并将结果返回给用户。
此外,ChatGPT还具有广泛的应用场景。它可以用于自然语言处理、机器翻译、聊天机器人和文本生成等方面。在未来,ChatGPT将继续发展和创新,成为处理自然语言的最佳工具之一。
notion image
ChatGPT和GPT-4是新兴的人工智能技术,通过其卓越的性能,取代了许多传统的机器学习研究人员的工作。
以前,如果您需要API中的自动翻译,我会建议使用最先进的翻译服务——DeepL。但是,现在,我们可以看到在成本方面,DeepL已经不再具备优势。根据用户测试表明,ChatGPT和DeepL的性能相当,但是DeepL每个单词的成本要高得多。
DeepL每1百万个字符的成本为20欧元。而ChatGPT每1百万个标记的成本为2美元,而且OpenAI估计一个标记相当于四个标记,因此ChatGPT成本更低,性价比更高。
除了这些成本考虑,我们还需要考虑ChatGPT和GPT-4的其他方面,包括其优秀的性能和快速的响应速度,这些因素使得其成为当前最受欢迎的人工智能技术之一。
notion image
在构建代表高价值品牌的软件时,机器翻译通常不够好。但是,如果您是一家小公司或正在构建创新产品,或者如果您需要机器翻译的原始速度或成本效益,则ChatGPT或DeepL可能是您的正确选择。
相比之下,人类翻译员通常会收取0.1美元-0.3美元每个单词的费用。这是每百万个单词的100,000美元-如果您正在构建代表高价值品牌的产品,那绝对值得,但如果您刚刚开始,可能太昂贵了。
因此,如果您正在构建使用翻译的软件,为什么不考虑让ChatGPT成为您的翻译后端呢?

构建Python API

设置项目

我喜欢使用Poetry来组织我的项目。 您可以将其视为Python的NPM,换句话说,它是一个包管理器,可帮助您管理依赖项。
现在,我们准备创建我们的项目文件夹。
遵循Poetry提示并填写项目的详细信息。 然后,让我们添加我们的依赖项。 我们将使用OpenAI库查询ChatGPT和FastAPI + Pydantic库构建我们的服务器。
最后,创建一个名为main.py的文件,这将是我们的主要源代码文件。

添加OpenAI API密钥

当我们提交它到版本控制时,我们不希望将OpenAI API密钥存储在源代码中。 相反,让我们将其存储在.env文件中。 因此,让我们创建它。 请务必将YOUR_API_KEY替换为您的实际API密钥。
如果您没有OpenAI API密钥,请确保您拥有OpenAI帐户并转到View API Keys页面。 在那里,您可以创建新的OpenAI API密钥。
然后,我们使用dotenv库中的load_dotenv加载.env文件,并指示OpenAI库在进行请求时使用我们的API密钥。

添加POST路由

我们将使用ChatGPT API生成聊天完成。
翻译不需要聊天格式,但是如果我们使用传统的完成格式,我们将无法利用快速且便宜的ChatGPT模型。 相反,我们将不得不使用text-davinci-003模型,其成本是其10倍。
因此,让我们看看代码中的内容:

添加额外的上下文

DeepL支持添加术语表和控制翻译的语气。
ChatGPT有更好的东西:您可以为翻译API提供任何自定义指令。 在某些情况下,如果您确实需要定制翻译输出超出DeepL提供的语气和词汇表之外,则这可能是选择ChatGPT而不是DeepL的关键因素。
TranslationRequest具有一个名为context的字段,以支持此用例。

运行API

测试您的API

以下是如何使用curl测试新的翻译API的方法。
在此示例中,ChatGPT和DeepL都将默认翻译为“¡Cuidado,soldados de asalto!”。 但是,我想在西班牙语翻译中使用“stormtroopers”一词,因此我也将其放入上下文中。

下一步

这是一个概念验证实现。 如果您想扩展此代码,则可以考虑以下一些想法:
  • 为API添加输入验证,例如限制有效语言的数量。
  • 通过模拟ChatGPT API编写路由测试。
  • 添加支持以限制输出中的标记数。
  • 通过改进提示添加更多详细信息或功能。 我不是提示工程师,因此上面的提示可能不理想。
notion image
我们做到了! 感谢您阅读本教程。 请务必在评论部分中让我知道您的想法。

何时使用DeepL

作为一个快速的侧面说明,让我们讨论您不想使用ChatGPT作为主要翻译后端的场景。 如果以下任何场景适用于您,请改用DeepL。

提示注入是风险

如果您正在使用ChatGPT翻译用户生成的内容,则某些输入可能会生成意外结果。
如果提示以意外格式结束或变得太长,ChatGPT可能会感到困惑。 如果恶意用户给予它某些指令,它也可能返回不可接受的结果。 您可能不希望这是旗舰产品的可能性。

GDPR很重要

OpenAI的GDPR合规性正在接受辩论,意大利立法者迫使OpenAI停止向意大利客户提供其服务直到它能够显示合规性。
OpenAI声称API使用数据最多保留30天,除非法律另有规定。 如果您需要翻译的文本可能是敏感的,则这些模糊的表述可能不足以提供足够的保证。
另一方面,DeepL是一家德国公司,具有广泛的隐私和安全措施。 在其定价页面上,他们解释说,与他们的服务器的连接始终是加密的,并且翻译后立即删除文本。
因此,如果您需要翻译的数据可能包含个人数据,则安全选择是DeepL。

您需要翻译整个文档

ChatGPT具有有限的上下文窗口。 它最多只适合约4,000个单词,这4,000个单词必须在输入和输出之间共享。
这意味着如果要翻译的东西大于约2,000个单词,您必须将其拆分。 但是,当您拆分时,它将会
另一方面,DeepL可以在一键式中翻译整个文档。

DeepL免费层对您来说足够了

DeepL有一个免费层,每月提供价值50万免费字符的翻译,而OpenAI则要求您支付每个请求的费用。
如果您正在开发侧面项目或早期阶段的创业公司,并且只需要有限数量的翻译,则DeepL免费层可能更适合。
当然,如果你只需要少量的翻译,构建一个API甚至使用一个API都是过度的。你可以在DeepL和ChatGPT网页上进行一次性翻译。

ChatGPT在你的目标语言上表现不佳

ChatGPT是使用互联网文本进行训练的,而DeepL是使用Linguee数据库进行训练的。这个数据库主要包括欧盟翻译的文本。这意味着DeepL有更多的训练数据,可以更好地处理欧盟较小的语言。如果您的目标语言是欧盟较小的语言之一,DeepL可能是最好的选择。ChatGPT也支持这些语言,但由于训练数据中的例子比较少,可能不如对于最大的语言那样表现出色。例如,微妙的笑话可能翻译得不太好。因此,如果您需要翻译类似于微妙的笑话这样的文本,您可能需要采用其他的翻译工具或者尝试人工翻译。另外,ChatGPT在处理一些特定的领域,如医学或法律方面的文本方面可能不如DeepL表现出色,因为DeepL在这些领域中拥有更多的专业术语和例子进行训练。
notion image
DeepL是一种机器翻译软件,其训练基于Linguee数据库。该数据库还是Linguee词典应用程序的基础来源材料。相比于其他机器翻译软件,Google翻译通常是最好的选择,特别是对于一些较小的语言提供了最好的支持。
尽管DeepL和ChatGPT的表现水平相似,但ChatGPT的成本非常低,因此将其用作主要翻译后端是非常明智的选择。此外,选择ChatGPT还可以提高翻译的准确性和流畅度,因为机器翻译软件的性能通常取决于其训练数据的质量和数量。因此,如果您想要更准确,更流畅的翻译结果,可以选择ChatGPT作为您的主要翻译后端。
 

评论