llmtranslate は、特定のテキストの言語を識別し、OpenAI の GPT-4o を使用して複数の言語間でテキストを翻訳するように設計された Python ライブラリです。このライブラリは、複数の言語を含むテキストを単一のターゲット言語に翻訳する場合に特に役立ちます。
詳細な使用法情報を含む包括的なドキュメントは、https://llm-translate.com で入手できます。
このライブラリを使用するには、OpenAI API キーが必要です。このキーにより、ライブラリは翻訳と言語検出に OpenAI の GPT-4o を利用できるようになります。
PyPI から llmtranslate ライブラリをインストールできます。
pip install llmtranslate
OpenAI で llmtranslate を使用する前に、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 コード リスト Web サイトを参照してください。
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
オブジェクト。例:
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 Web サイトにアクセスしてください。
gpt-4o および gpt4o-mini でサポートされる言語を示す表は次のとおりです。
言語名 | 言語コード | gpt-4o によるサポート | gpt4o-mini によるサポート |
---|---|---|---|
英語 | jp | はい | はい |
北京語 | zh | はい | はい |
ヒンディー語 | こんにちは | はい | はい |
スペイン語 | エス | はい | はい |
フランス語 | フランス | はい | はい |
ドイツ語 | デ | はい | はい |
ロシア | る | はい | はい |
アラビア語 | あーる | はい | はい |
イタリア語 | それ | はい | はい |
韓国人 | こ | はい | はい |
パンジャブ語 | パ | はい | はい |
ベンガル語 | ブン | はい | はい |
ポルトガル語 | ポイント | はい | はい |
インドネシア語 | ID | はい | はい |
ウルドゥー語 | あなた | はい | はい |
ペルシア語 (ペルシャ語) | ファ | はい | はい |
ベトナム語 | ヴィ | はい | はい |
研磨 | お願いします | はい | はい |
サモア語 | sm | はい | はい |
タイ語 | 番目 | はい | はい |
ウクライナ語 | 英国 | はい | はい |
トルコ語 | tr | はい | はい |
マオリ語 | 私 | いいえ | いいえ |
ノルウェー語 | いいえ | はい | はい |
オランダ語 | nl | はい | はい |
ギリシャ語 | エル | はい | はい |
ルーマニア語 | ロ | はい | はい |
スワヒリ語 | スイス | はい | はい |
ハンガリー語 | ふー | はい | はい |
ヘブライ語 | 彼 | はい | はい |
スウェーデン語 | SV | はい | はい |
チェコ語 | cs | はい | はい |
フィンランド語 | フィ | はい | はい |
アムハラ語 | 午前 | いいえ | いいえ |
タガログ語 | TL | はい | はい |
ビルマ語 | 私の | はい | はい |
タミル語 | た | はい | はい |
カンナダ語 | 知っている | はい | はい |
パシュトゥー語 | ps | はい | はい |
ヨルバ語 | よー | はい | はい |
マレー語 | MS | はい | はい |
ハイチ クレオール | ht | はい | はい |
ネパール語 | ね | はい | はい |
シンハラ語 | シ | はい | はい |
カタルーニャ語 | およそ | はい | はい |
マダガスカル | mg | はい | はい |
ラトビア語 | レベル | はい | はい |
リトアニア語 | それ | はい | はい |
エストニア語 | など | はい | はい |
ソマリ語 | それで | はい | はい |
ティグリニャ | ティ | いいえ | いいえ |
ブルトン語 | br | いいえ | いいえ |
フィジー語 | fj | はい | いいえ |
マルタ語 | 山 | はい | はい |
コルシカ島 | 共 | はい | はい |
ルクセンブルク語 | ポンド | はい | はい |
オック語 | oc | はい | はい |
ウェールズ語 | サイ | はい | はい |
アルバニア人 | 平方 | はい | はい |
マケドニア語 | mk | はい | はい |
アイスランド語 | は | はい | はい |
スロベニア語 | sl | はい | はい |
ガリシア語 | GL | はい | はい |
バスク語 | 欧州連合 | はい | はい |
アゼルバイジャン語 | az | はい | はい |
ウズベク語 | うず | はい | はい |
カザフ語 | kk | はい | はい |
モンゴル語 | ん | はい | はい |
チベット語 | ボー | いいえ | いいえ |
クメール語 | km | はい | いいえ |
ラオ語 | やあ | はい | はい |
テルグ語 | て | はい | はい |
マラーティー語 | 氏 | はい | はい |
チチェワ | ニューヨーク | はい | はい |
エスペラント | エオ | はい | はい |
クルド | く | いいえ | いいえ |
タジク語 | tg | はい | はい |
コサ語 | xh | はい | いいえ |
イディッシュ語 | ええ | はい | はい |
ズールー語 | ず | はい | はい |
スンダ人 | す | はい | はい |
タタール語 | って | はい | はい |
ケチュア語 | くー | いいえ | いいえ |
ウイグル語 | うーん | いいえ | いいえ |
ウォロフ | を | いいえ | いいえ |
ツワナ | トン | はい | はい |
llmtranslate は MIT ライセンスに基づいてライセンスされています。詳細については、LICENSE ファイルを参照してください。