TextLanguageRouter

TextLanguageRouter

TextLanguageRouter 는 파이프라인에서 입력 문자열의 언어를 감지해 라우팅하는 컴포넌트예요. 쿼리를 언어에 따라 다른 리트리버로 보내거나, 지원하지 않는 언어의 쿼리를 걸러낼 때 유용해요.

출처: 문서

본문

개요 (Overview)

TextLanguageRouter 는 입력 문자열의 언어를 감지하고, 그 언어가 컴포넌트를 초기화할 때 설정한 언어 집합에 있다면 그 언어 이름의 출력으로 라우팅해요. 기본적으로 이 집합에는 영어만 있어요. 감지된 언어가 컴포넌트의 languages 에 없으면 unmatched 라는 이름의 출력으로 보내요.

파이프라인에서는 첫 번째 컴포넌트로 쓰여 질의를 언어에 따라 라우팅하고, 지원되지 않는 언어의 질의를 걸러내요.

컴포넌트의 languages 파라미터는 ISO 코드 언어 목록(예: en, de, fr, es, it)이어야 하며, 각 언어는 서로 다른 출력 연결에 대응해요(langdetect 문서 참고).

사용법 (Usage)

TextLanguageRouter 컴포넌트를 쓰려면 langdetect-haystack 패키지를 설치하세요:

pip install langdetect-haystack

단독으로 쓰기

아래는 TextLanguageRouter 로 프랑스어 텍스트만 fr 이라는 출력 연결로 보내는 예시예요. 아래의 영어 텍스트 같은 다른 텍스트는 unmatched 출력으로 보내져요.

from haystack_integrations.components.routers.langdetect import TextLanguageRouter

router = TextLanguageRouter(languages=["fr"])
router.run(text="What's your query?")

파이프라인에서 쓰기

TextLanguageRouter 로 영어 질의만 Retriever로 전달하는 쿼리 파이프라인 예시예요.

from haystack import Pipeline
from haystack_integrations.components.routers.langdetect import TextLanguageRouter
from haystack.document_stores.in_memory import InMemoryDocumentStore
from haystack.components.retrievers.in_memory import InMemoryBM25Retriever

document_store = InMemoryDocumentStore()
p = Pipeline()
p.add_component(instance=TextLanguageRouter(), name="text_language_router")
p.add_component(
    instance=InMemoryBM25Retriever(document_store=document_store),
    name="retriever",
)
p.connect("text_language_router.en", "retriever.query")
p.run({"text_language_router": {"text": "What's your query?"}})

더 알아보기 (Learn more)