LaraDocumentTranslator

LaraDocumentTranslator

Haystack 문서의 텍스트 내용을 Lara 번역 API로 번역해주는 컴포넌트예요. 주로 Retriever나 Converter처럼 문서를 만들어내는 컴포넌트 다음에 두면 돼요.

출처: LaraDocumentTranslator

본문

개요

Lara는 translated가 만든 적응형 번역 AI예요. LLM의 유창함과 컨텍스트 처리 능력을 낮은 환각(hallucination)·지연 시간과 결합했어요. 선택적 컨텍스트, 지시문, 번역 메모리, 용어집을 사용해 추론 시점에 도메인에 적응해요.

LaraDocumentTranslator는 Haystack 문서 목록을 받아 Lara API로 텍스트 내용을 번역하고, 번역이 담긴 새 문서를 반환해요. 번역된 각 문서의 메타데이터에는 original_document_id 키 아래 원본 문서 ID가 보존돼요.

주요 기능이에요.

  • 자동 언어 감지: source_lang을 None으로 두면 Lara가 자동으로 감지해요.
  • 번역 스타일: "faithful", "fluid", "creative" 중에서 어조를 고를 수 있어요.
  • 컨텍스트와 지시문: 주변 텍스트나 자연어 지시문을 넘겨 품질을 높일 수 있어요.
  • 번역 메모리와 용어집: 메모리 또는 용어집 ID를 제공해 Lara가 일관된 용어를 유지하게 해요.
  • 추론(Lara Think): 다단계 언어 분석을 켜서 더 높은 품질의 출력을 얻을 수 있어요.

사용법

설치

이 통합을 Haystack에서 쓰려면 설치해요.

pip install lara-haystack

LaraDocumentTranslator는 Lara API 자격 증명이 필요해요. 기본적으로 LARA_ACCESS_KEY_ID와 LARA_ACCESS_KEY_SECRET 환경 변수를 사용해요. 아니면 초기화할 때 직접 넘길 수 있어요.

from haystack.utils import Secret
from haystack_integrations.components.translators.lara import LaraDocumentTranslator

translator = LaraDocumentTranslator(
    access_key_id=Secret.from_token("<your-access-key-id>"),
    access_key_secret=Secret.from_token("<your-access-key-secret>"),
    source_lang="en-US",
    target_lang="de-DE",
)

Lara API 자격 증명을 얻으려면 laratranslate.com에서 가입하면 돼요.

단독 사용

LARA_ACCESS_KEY_ID와 LARA_ACCESS_KEY_SECRET 환경 변수를 설정하거나 직접 넘기는 걸 잊지 마세요.

from haystack import Document
from haystack.utils import Secret
from haystack_integrations.components.translators.lara import LaraDocumentTranslator

translator = LaraDocumentTranslator(
    access_key_id=Secret.from_env_var("LARA_ACCESS_KEY_ID"),
    access_key_secret=Secret.from_env_var("LARA_ACCESS_KEY_SECRET"),
    source_lang="en-US",
    target_lang="de-DE",
)

doc = Document(content="Hello, world!")
result = translator.run(documents=[doc])
print(result["documents"][0].content)
# >> "Hallo, Welt!"

파이프라인 안에서

아래는 웹페이지를 가져와 문서로 변환하고, 영어에서 독일어로 번역하는 파이프라인에서의 LaraDocumentTranslator 예시예요.

from haystack import Pipeline
from haystack.components.converters import HTMLToDocument
from haystack.components.fetchers import LinkContentFetcher
from haystack_integrations.components.translators.lara import LaraDocumentTranslator

fetcher = LinkContentFetcher()
converter = HTMLToDocument()
translator = LaraDocumentTranslator(source_lang="en-US", target_lang="de-DE")

pipe = Pipeline()
pipe.add_component("fetcher", fetcher)
pipe.add_component("converter", converter)
pipe.add_component("translator", translator)

pipe.connect("fetcher", "converter")
pipe.connect("converter", "translator")

result = pipe.run(data={"fetcher": {"urls": ["https://haystack.deepset.ai/"]}})
translated_docs = result["translator"]["documents"]
for doc in translated_docs:
    print(doc.content)

더 알아보기 (Learn more)