文档API 参考📓 教程🧑‍🍳 食谱🤝 集成💜 Discord🎨 Studio
文档

TextLanguageRouter

使用此组件在 pipeline 中根据查询的语言进行路由。

pipeline 中的最常见位置作为将查询路由到不同Retrievers 的第一个组件,基于其语言
必需的初始化变量"languages": ISO 语言代码列表
强制运行变量“text”: 一个字符串
输出变量“unmatched”: 字符串

初始化时定义的语言”: 字符串。例如:“fr”: 法语字符串。
API 参考Routers (路由器)
GitHub 链接https://github.com/deepset-ai/haystack/blob/main/haystack/components/routers/text_language_router.py

概述

TextLanguageRouter 会检测输入字符串的语言,如果该语言是组件初始化时设置的语言之一,则将其路由到以该语言命名的输出。默认情况下,只有英语在此列表中。如果检测到的输入文本语言不在组件的languages 中,则会路由到名为unmatched.

的输出。在 pipeline 中,它用作第一个组件,根据查询的语言进行路由,并过滤掉不支持语言的查询。

组件参数languages 必须是 ISO 代码格式的语言列表,例如 en、de、fr、es、it,每个代码对应一个不同的输出连接(参见 langdetect 文档)。

用法

单独使用

下面是一个示例,其中使用TextLanguageRouter 将仅限法语的文本路由到名为fr 的输出连接。其他文本,例如下面的英语文本,会被路由到名为unmatched.

from haystack.components.routers import TextLanguageRouter

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

在 pipeline 中

下面是一个查询 pipeline 的示例,该 pipeline 使用TextLanguageRouter 将仅限英语的查询转发给 Retriever。

from haystack import Pipeline
from haystack.components.routers 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?"}})

相关链接

在我们的 API 参考中查看参数详情