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 코드 목록 웹사이트를 참조하세요.
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" )
비동기식 방법을 사용하면 애플리케이션에서 여러 작업을 동시에 처리할 수 있어 효율성이 향상됩니다. 특히 대량의 텍스트를 처리하거나 여러 번역을 동시에 수행할 때 더욱 그렇습니다. 이러한 비차단 동작은 웹 서비스, 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에서 지원됨 |
---|---|---|---|
영어 | ko | 예 | 예 |
중국어(북경어) | zh | 예 | 예 |
힌디 어 | 안녕 | 예 | 예 |
스페인 사람 | 예 | 예 | 예 |
프랑스 국민 | 정말로 | 예 | 예 |
독일 사람 | 드 | 예 | 예 |
러시아인 | 루 | 예 | 예 |
아라비아 말 | 아르 | 예 | 예 |
이탈리아 사람 | 그것 | 예 | 예 |
한국인 | 코 | 예 | 예 |
펀자브어 | 아빠 | 예 | 예 |
벵골 사람 | 억 | 예 | 예 |
포르투갈 인 | 태평양 표준시 | 예 | 예 |
인도네시아 인 | ID | 예 | 예 |
우르두어 | 당신의 | 예 | 예 |
페르시아어(페르시아어) | 파 | 예 | 예 |
베트남 사람 | vi | 예 | 예 |
광택 | pl | 예 | 예 |
사모아어 | sm | 예 | 예 |
태국어 | 일 | 예 | 예 |
우크라이나 말 | 영국 | 예 | 예 |
터키어 | tr | 예 | 예 |
마오리족 | 미 | 아니요 | 아니요 |
노르웨이 인 | 아니요 | 예 | 예 |
네덜란드 사람 | NL | 예 | 예 |
그리스 사람 | 엘자 | 예 | 예 |
루마니아 사람 | 로 | 예 | 예 |
스와힐리어 | 남서 | 예 | 예 |
헝가리 인 | 후 | 예 | 예 |
헤브라이 사람 | 그 | 예 | 예 |
스웨덴어 | 세인트 | 예 | 예 |
체코 사람 | CS | 예 | 예 |
핀란드어 | fi | 예 | 예 |
암하라어 | ~이다 | 아니요 | 아니요 |
타갈로그어 | tl | 예 | 예 |
버마 사람 | 나의 | 예 | 예 |
타밀 사람 | 고마워 | 예 | 예 |
칸나다어 | kn | 예 | 예 |
파슈토어 | 추신 | 예 | 예 |
요루바어 | 에야디야 | 예 | 예 |
말레이 사람 | ms | 예 | 예 |
아이티 크리올어 | ht | 예 | 예 |
네팔어 | 네 | 예 | 예 |
신할라어 | 시 | 예 | 예 |
카탈로니아 사람 | 캘리포니아 | 예 | 예 |
마다가스카르 사람 | mg | 예 | 예 |
라트비아 사람 | lv | 예 | 예 |
리투아니아 사람 | lt | 예 | 예 |
에스토니아 사람 | 등 | 예 | 예 |
소말리아어 | 그래서 | 예 | 예 |
티그리냐 | 티 | 아니요 | 아니요 |
브르타뉴어 | br | 아니요 | 아니요 |
피지어 | 피제이 | 예 | 아니요 |
몰티즈 | 후지산 | 예 | 예 |
코르시카어 | 공동 | 예 | 예 |
룩셈부르크어 | 파운드 | 예 | 예 |
옥시탄 | oc | 예 | 예 |
웨일스 말 | 싸이 | 예 | 예 |
알바니아 | 평방 | 예 | 예 |
마케도니아 어 | MK | 예 | 예 |
아이슬란드어 | ~이다 | 예 | 예 |
슬로베니아 | sl | 예 | 예 |
갈리시아어 | 글 | 예 | 예 |
바스크 사람 | ㅡ | 예 | 예 |
아제르바이잔 | 아즈 | 예 | 예 |
우즈벡어 | 우즈 | 예 | 예 |
카자흐어 | ㅋㅋ | 예 | 예 |
몽고 어 | 백만 | 예 | 예 |
티베트어 | 악 | 아니요 | 아니요 |
크메르어 | 킬로미터 | 예 | 아니요 |
라오스 | 봐라 | 예 | 예 |
텔루구어 | 테 | 예 | 예 |
마라티어 | ~ 씨 | 예 | 예 |
치체와어 | 뉴욕 | 예 | 예 |
에스페란토 말 | 어 | 예 | 예 |
쿠르드어 | 구 | 아니요 | 아니요 |
타직어 | tg | 예 | 예 |
코사어 | xh | 예 | 아니요 |
이디시어 | 이 | 예 | 예 |
줄루 족 | 즈 | 예 | 예 |
순다어 | 수 | 예 | 예 |
타타르어 | ㅜㅜ | 예 | 예 |
케추아어 | 쿠 | 아니요 | 아니요 |
위구르어 | 윽 | 아니요 | 아니요 |
월로프 | 우와 | 아니요 | 아니요 |
츠와나어 | 테네시 | 예 | 예 |
llmtranslate는 MIT 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.