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?"}})
更新于 大约 1 年前
