llmtranslate é uma biblioteca Python projetada para identificar o idioma de um determinado texto e traduzir texto entre vários idiomas usando GPT-4o da OpenAI. A biblioteca é especialmente útil para traduzir textos contendo vários idiomas em um único idioma de destino.
Documentação abrangente, incluindo informações detalhadas de uso, está disponível em https://llm-translate.com
Para usar esta biblioteca, você deve ter uma chave de API OpenAI. Esta chave permite que a biblioteca utilize o GPT-4o da OpenAI para tradução e detecção de idioma.
Você pode instalar a biblioteca llmtranslate do PyPI:
pip install llmtranslate
Antes de usar o llmtranslate com OpenAI, você precisa definir sua chave de API OpenAI. Você pode fazer isso criando uma instância da classe TranslatorOpenAI.
from llmtranslate import TranslatorOpenAI
# Set your OpenAI API key
translator = TranslatorOpenAI ( api_key = "YOUR_OPENAI_API_KEY" , model = "gpt-4o-mini" )
Para detectar o idioma de um determinado texto:
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'
Importante
Se o tradutor não detectar nenhum idioma, ele retornará Nenhum.
Antes de usar os resultados da detecção do tradutor você deve verificar se retornou o resultado correto ou Nenhum
Para traduzir texto contendo vários idiomas para outro idioma, você precisa fornecer o código de idioma ISO 639 do idioma de destino. Para obter uma lista de todos os códigos de idioma ISO 639, você pode consultar este site da lista de códigos 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"
Aqui está um exemplo completo demonstrando como usar a biblioteca:
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"
A biblioteca llmtranslate fornece acesso a vários modelos OpenAI para tradução. Abaixo estão os modelos suportados e seus casos de uso:
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" )
A biblioteca llmtranslate
fornece métodos assíncronos para permitir que você execute tarefas de detecção e tradução de idioma com eficiência em um ambiente assíncrono. Se seu aplicativo usar asyncio
ou outra estrutura assíncrona, você poderá aproveitar ao máximo esses métodos assíncronos para evitar o bloqueio de seu programa enquanto aguarda a conclusão das tarefas de detecção de idioma ou tradução.
O exemplo a seguir demonstra como usar os métodos async_get_text_language
e 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)
: Este método detecta o idioma do texto fornecido de forma assíncrona.
text
: O texto de entrada cujo idioma precisa ser detectado.TextLanguage
contendo os códigos ISO 639-1, ISO 639-2, ISO 639-3 do idioma detectado e o nome do idioma.Exemplo :
detected_language = await translator . async_get_text_language ( "Hallo, wie geht's?" )
async_translate_text(text: str, to_language: str)
: Este método traduz o texto de entrada de forma assíncrona para o idioma de destino especificado.
text
: O texto de entrada a ser traduzido.to_language
: O idioma de destino no código ISO 639-1.Exemplo :
translated_text = await translator . async_translate ( "Bonjour tout le monde" , "en" )
O uso de métodos assíncronos permite que seu aplicativo lide com diversas tarefas simultaneamente, melhorando a eficiência, especialmente ao lidar com grandes quantidades de texto ou realizar diversas traduções simultaneamente. Esse comportamento sem bloqueio é ideal para serviços web, APIs e qualquer cenário que exija alta capacidade de resposta.
Lembre-se de que os métodos assíncronos devem ser chamados dentro de uma função async
. Para executá-los, você pode usar asyncio.run()
conforme mostrado nos exemplos acima.
Se estiver a utilizar os serviços OpenAI do Azure, terá de definir a sua chave API Azure OpenAI juntamente com parâmetros adicionais necessários. Use a classe TranslatorAzureOpenAI para isso.
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 oferece suporte a todos os idiomas suportados pelo GPT-4o. Para obter uma lista completa de códigos de idioma, você pode visitar o site da ISO 639-1.
Aqui está uma tabela que mostra quais idiomas são suportados pelo gpt-4o e gpt4o-mini:
Nome do idioma | Código do idioma | Suportado por gpt-4o | Suportado por gpt4o-mini |
---|---|---|---|
Inglês | pt | Sim | Sim |
Chinês mandarim | z | Sim | Sim |
hindi | oi | Sim | Sim |
Espanhol | é | Sim | Sim |
Francês | franco | Sim | Sim |
Alemão | de | Sim | Sim |
russo | ru | Sim | Sim |
árabe | ar | Sim | Sim |
italiano | isto | Sim | Sim |
coreano | ko | Sim | Sim |
punjabi | pai | Sim | Sim |
bengali | bilhões | Sim | Sim |
Português | ponto | Sim | Sim |
indonésio | eu ia | Sim | Sim |
urdu | você | Sim | Sim |
Persa (farsi) | fa | Sim | Sim |
vietnamita | vi | Sim | Sim |
polonês | por favor | Sim | Sim |
samoano | sm | Sim | Sim |
Tailandês | o | Sim | Sim |
ucraniano | Reino Unido | Sim | Sim |
turco | tr | Sim | Sim |
maori | mi | Não | Não |
norueguês | não | Sim | Sim |
Holandês | nl | Sim | Sim |
grego | el | Sim | Sim |
romeno | ro | Sim | Sim |
suaíli | sw | Sim | Sim |
húngaro | hein | Sim | Sim |
hebraico | ele | Sim | Sim |
sueco | SV | Sim | Sim |
Tcheco | CS | Sim | Sim |
finlandês | fi | Sim | Sim |
amárico | sou | Não | Não |
tagalo | tl | Sim | Sim |
birmanês | meu | Sim | Sim |
tâmil | ta | Sim | Sim |
Kannada | sabe | Sim | Sim |
pashto | obs. | Sim | Sim |
Iorubá | ei | Sim | Sim |
malaio | EM | Sim | Sim |
crioulo haitiano | ht | Sim | Sim |
nepalês | não | Sim | Sim |
Cingalês | si | Sim | Sim |
catalão | ca | Sim | Sim |
malgaxe | mg | Sim | Sim |
letão | nível | Sim | Sim |
lituano | isso | Sim | Sim |
estoniano | et | Sim | Sim |
somali | então | Sim | Sim |
Tigrínia | você | Não | Não |
bretão | br | Não | Não |
Fijiano | fj | Sim | Não |
maltês | mt | Sim | Sim |
Córsega | co | Sim | Sim |
Luxemburguês | Libra | Sim | Sim |
Occitano | oc | Sim | Sim |
galês | ci | Sim | Sim |
albanês | quadrado | Sim | Sim |
Macedônio | mk | Sim | Sim |
islandês | é | Sim | Sim |
esloveno | sl | Sim | Sim |
Galego | gl | Sim | Sim |
Basco | UE | Sim | Sim |
Azerbaijano | az | Sim | Sim |
Usbeque | nós | Sim | Sim |
Cazaque | kkkkk | Sim | Sim |
mongol | homem | Sim | Sim |
tibetano | bom | Não | Não |
Khmer | quilômetros | Sim | Não |
Laos | eis | Sim | Sim |
Telugu | você | Sim | Sim |
Marathi | senhor | Sim | Sim |
Chichewa | Nova Iorque | Sim | Sim |
esperanto | eo | Sim | Sim |
curdo | ku | Não | Não |
tadjique | tg | Sim | Sim |
Xhosa | xh | Sim | Não |
iídiche | sim | Sim | Sim |
zulu | zu | Sim | Sim |
Sudanês | su | Sim | Sim |
Tártaro | tt | Sim | Sim |
Quéchua | o que | Não | Não |
Uigur | ei | Não | Não |
Uolof | ai | Não | Não |
Tsuana | tn | Sim | Sim |
llmtranslate está licenciado sob a licença MIT. Consulte o arquivo LICENSE para obter mais detalhes.