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 許可證獲得許可。有關更多詳細信息,請參閱許可證文件。