llmtranslate 是一个 Python 库,旨在识别给定文本的语言并使用 OpenAI 的 GPT-4o 在多种语言之间翻译文本。该库对于将包含多种语言的文本翻译成单一目标语言特别有用。
全面的文档,包括详细的使用信息,请访问 https://llm-translate.com
要使用此库,您必须拥有 OpenAI API 密钥。该密钥允许该库利用 OpenAI 的 GPT-4o 进行翻译和语言检测。
您可以从 PyPI 安装 llmtranslate 库:
pip install llmtranslate
在将 llmtranslate 与 OpenAI 结合使用之前,您需要设置 OpenAI API 密钥。您可以通过创建 TranslatorOpenAI 类的实例来完成此操作。
from llmtranslate import TranslatorOpenAI
# Set your OpenAI API key
translator = TranslatorOpenAI ( api_key = "YOUR_OPENAI_API_KEY" , model = "gpt-4o-mini" )
要检测给定文本的语言:
from llmtranslate import TranslatorOpenAI
# Set your OpenAI API key
translator = TranslatorOpenAI ( api_key = "YOUR_OPENAI_API_KEY" , model = "gpt-4o-mini" )
# Detect language
detected_language = translator . get_text_language ( "Hello world" )
if detected_language is not None :
print ( detected_language . ISO_639_1_code ) # Output: 'en'
print ( detected_language . ISO_639_2_code ) # Output: 'eng'
print ( detected_language . ISO_639_3_code ) # Output: 'eng'
print ( detected_language . language_name ) # Output: 'English'
重要的
如果翻译器没有检测到任何语言,它将返回 None。
在使用翻译器检测结果之前,您应该检查它是否返回正确的结果或“无”
要将包含多种语言的文本翻译成另一种语言,您需要提供目标语言的 ISO 639 语言代码。有关所有 ISO 639 语言代码的列表,您可以参考此 ISO 639-1 代码列表网站。
from llmtranslate import TranslatorOpenAI
# Set your OpenAI API key
translator = TranslatorOpenAI ( api_key = "YOUR_OPENAI_API_KEY" , model = "gpt-4o-mini" )
# Translate text
translated_text = translator . translate (
text = "Cześć jak się masz? Meu nome é Adam" ,
to_language = "en" # Use ISO 639-1 code for the target language
)
print ( translated_text ) # Output: "Hello how are you? My name is Adam"
这是一个完整的示例,演示了如何使用该库:
from llmtranslate import TranslatorOpenAI
# Initialize the translator with your OpenAI API key
translator = TranslatorOpenAI ( api_key = "YOUR_OPENAI_API_KEY" , model = "gpt-4o-mini" )
# Detect language
detected_language = translator . get_text_language ( "jak ty się nazywasz" )
if detected_language is not None :
print ( detected_language . ISO_639_1_code ) # Output: 'pl'
print ( detected_language . ISO_639_2_code ) # Output: 'pol'
print ( detected_language . ISO_639_3_code ) # Output: 'pol'
print ( detected_language . language_name ) # Output 'Polish'
# Translate text
translated_text = translator . translate (
text = "Cześć jak się masz? Meu nome é Adam" ,
to_language = "en"
)
print ( translated_text ) # Output: "Hello how are you? My name is Adam"
llmtranslate 库提供对各种 OpenAI 模型的访问以进行翻译。以下是支持的模型及其用例:
from llmtranslate import TranslatorOpenAI
# Recommended for precise translation, high-precision model
translator = TranslatorOpenAI ( api_key = "YOUR_OPENAI_API_KEY" , model = "gpt-4o" )
# A budget-friendly option, balancing cost and quality
translator = TranslatorOpenAI ( api_key = "YOUR_OPENAI_API_KEY" , model = "gpt-4o-mini" )
llmtranslate
库提供异步方法,允许您在异步环境中高效执行语言检测和翻译任务。如果您的应用程序使用asyncio
或其他异步框架,您可以充分利用这些异步方法,以避免在等待语言检测或翻译任务完成时阻塞您的程序。
以下示例演示如何使用async_get_text_language
和async_translate_text
方法:
import asyncio
from llmtranslate import TranslatorOpenAI
# Initialize the translator with your OpenAI API key
translator = TranslatorOpenAI ( api_key = "YOUR_OPENAI_API_KEY" , model = "gpt-4o-mini" )
# Async function to detect language and translate text
async def detect_and_translate ():
# Detect language asynchronously
detected_language = await translator . async_get_text_language ( "Hola, ¿cómo estás?" )
if detected_language is not None :
print ( detected_language . ISO_639_1_code ) # Output: 'es'
print ( detected_language . language_name ) # Output: 'Spanish'
# Translate text asynchronously
translated_text = await translator . async_translate (
text = "Cześć jak się masz? Meu nome é Adam" ,
to_language = "en" # Use ISO 639-1 code for the target language
)
print ( translated_text ) # Output: "Hello how are you? My name is Adam"
# Run the async function
asyncio . run ( detect_and_translate ())
async_get_text_language(text: str)
:此方法异步检测所提供文本的语言。
text
:需要检测语言的输入文本。TextLanguage
对象,包含检测到的语言的 ISO 639-1、ISO 639-2、ISO 639-3 代码和语言名称。例子:
detected_language = await translator . async_get_text_language ( "Hallo, wie geht's?" )
async_translate_text(text: str, to_language: str)
:此方法将输入文本异步翻译为指定的目标语言。
text
:要翻译的输入文本。to_language
:ISO 639-1 代码中的目标语言。例子:
translated_text = await translator . async_translate ( "Bonjour tout le monde" , "en" )
使用异步方法允许您的应用程序同时处理多个任务,从而提高效率,特别是在处理大量文本或同时执行多个翻译时。这种非阻塞行为非常适合 Web 服务、API 以及任何需要高响应能力的场景。
请记住,必须在async
函数内调用异步方法。要执行它们,您可以使用asyncio.run()
如上面的示例所示。
如果您使用 Azure 的 OpenAI 服务,则需要设置 Azure OpenAI API 密钥以及其他必需参数。为此,请使用 TranslatorAzureOpenAI 类。
from llmtranslate import TranslatorAzureOpenAI
# Set your Azure OpenAI API key and related parameters
translator = TranslatorAzureOpenAI (
azure_endpoint = "YOUR_AZURE_ENDPOINT" ,
api_key = "YOUR_AZURE_API_KEY" ,
api_version = "YOUR_API_VERSION" ,
azure_deployment = "YOUR_AZURE_DEPLOYMENT"
)
llmtranslate 支持 GPT-4o 支持的所有语言。有关语言代码的完整列表,您可以访问 ISO 639-1 网站。
下表显示了 gpt-4o 和 gpt4o-mini 支持哪些语言:
语言名称 | 语言代码 | 由 gpt-4o 支持 | 由 gpt4o-mini 支持 |
---|---|---|---|
英语 | zh | 是的 | 是的 |
普通话 中文 | zh | 是的 | 是的 |
印地语 | 你好 | 是的 | 是的 |
西班牙语 | 英语 | 是的 | 是的 |
法语 | FR | 是的 | 是的 |
德语 | 德 | 是的 | 是的 |
俄语 | 汝 | 是的 | 是的 |
阿拉伯 | 阿尔 | 是的 | 是的 |
意大利语 | 它 | 是的 | 是的 |
韩国人 | 科 | 是的 | 是的 |
旁遮普语 | 帕 | 是的 | 是的 |
孟加拉 | BN | 是的 | 是的 |
葡萄牙语 | 点 | 是的 | 是的 |
印度尼西亚 | ID | 是的 | 是的 |
乌尔都语 | 你的 | 是的 | 是的 |
波斯语(波斯语) | 发 | 是的 | 是的 |
越南语 | 六 | 是的 | 是的 |
抛光 | PL | 是的 | 是的 |
萨摩亚人 | SM | 是的 | 是的 |
泰国 | th | 是的 | 是的 |
乌克兰 | 英国 | 是的 | 是的 |
土耳其 | t | 是的 | 是的 |
毛利人 | 米 | 不 | 不 |
挪威 | 不 | 是的 | 是的 |
荷兰语 | NL | 是的 | 是的 |
希腊语 | 埃尔 | 是的 | 是的 |
罗马尼亚语 | 罗 | 是的 | 是的 |
斯瓦希里语 | SW | 是的 | 是的 |
匈牙利 | 胡 | 是的 | 是的 |
希伯来语 | 他 | 是的 | 是的 |
瑞典 | SV | 是的 | 是的 |
捷克语 | CS | 是的 | 是的 |
芬兰 | 菲 | 是的 | 是的 |
阿姆哈拉语 | 是 | 不 | 不 |
他加禄语 | 特尔 | 是的 | 是的 |
缅甸语 | 我的 | 是的 | 是的 |
泰米尔语 | 塔 | 是的 | 是的 |
卡纳达语 | 千 | 是的 | 是的 |
普什图语 | 附注 | 是的 | 是的 |
约鲁巴语 | 哟 | 是的 | 是的 |
马来语 | 多发性硬化症 | 是的 | 是的 |
海地克里奥尔语 | 高温 | 是的 | 是的 |
尼泊尔语 | 讷 | 是的 | 是的 |
僧伽罗语 | 斯 | 是的 | 是的 |
加泰罗尼亚语 | 加州 | 是的 | 是的 |
马尔加什 | 毫克 | 是的 | 是的 |
拉脱维亚语 | LV | 是的 | 是的 |
立陶宛语 | 其 | 是的 | 是的 |
爱沙尼亚语 | 等 | 是的 | 是的 |
索马里 | 所以 | 是的 | 是的 |
提格里尼亚 | 钛 | 不 | 不 |
布列塔尼 | br | 不 | 不 |
斐济语 | 菲杰 | 是的 | 不 |
马耳他语 | 公吨 | 是的 | 是的 |
科西嘉岛 | 共 | 是的 | 是的 |
卢森堡语 | 磅 | 是的 | 是的 |
奥克语 | 奥克 | 是的 | 是的 |
威尔士语 | 赛 | 是的 | 是的 |
阿尔巴尼亚语 | 平方 | 是的 | 是的 |
马其顿语 | MK | 是的 | 是的 |
冰岛语 | 是 | 是的 | 是的 |
斯洛文尼亚语 | 斯尔 | 是的 | 是的 |
加利西亚语 | 格 | 是的 | 是的 |
巴斯克 | 欧盟 | 是的 | 是的 |
阿塞拜疆语 | 阿兹 | 是的 | 是的 |
乌兹别克语 | 乌兹 | 是的 | 是的 |
哈萨克语 | kk | 是的 | 是的 |
蒙 | 锰 | 是的 | 是的 |
藏 | 博 | 不 | 不 |
高棉语 | 公里 | 是的 | 不 |
老挝 | 罗 | 是的 | 是的 |
泰卢固语 | 特 | 是的 | 是的 |
马拉地语 | 先生 | 是的 | 是的 |
奇切瓦语 | 纽约 | 是的 | 是的 |
世界语 | 环氧乙烷 | 是的 | 是的 |
库尔德 | 库 | 不 | 不 |
塔吉克 | TG | 是的 | 是的 |
科萨语 | xh | 是的 | 不 |
意第绪语 | 伊 | 是的 | 是的 |
祖鲁语 | 祖 | 是的 | 是的 |
巽他语 | 苏 | 是的 | 是的 |
鞑靼人 | TT | 是的 | 是的 |
克丘亚语 | 曲 | 不 | 不 |
维吾尔 | 乌格 | 不 | 不 |
沃洛夫语 | 窝 | 不 | 不 |
茨瓦纳语 | 总氮 | 是的 | 是的 |
llmtranslate 根据 MIT 许可证获得许可。有关更多详细信息,请参阅许可证文件。