路由链(RouterChain)用于创建可以动态选择下一条链的链。 RouterChain 由两个部分组成: 路由链本身(负责选择下一条链) destination_chains:RouterChain 可以路由到的链 RouterChain 的几种类型包括: LLMRouterChain:使用一个语言模型来决定如何路由 EmbeddingRouterChain:使用嵌入和相似性来路由到不同的链 RouterChain ...
SequentialChain RouterChain:路由链类似一个while else的函数,根据输入值,选择对应的路由(路径)进行后续的链路。整个路由链一般一个输入,一个输出。 RouterChain流程图 RouterChain(1) RouterChain(2) Agents:某些应用程序需要根据用户输入对 LLM 和其他工具进行灵活的调用链。代理接口为此类应用程序提供了灵活性。代理...
1)路由器链本身,负责选择要调用的下一个链,主要有 2 种 RouterChain,其中 LLMRouterChain 通过 LL...
router_chain = EmbeddingRouterChain.from_names_and_descriptions( names_and_descriptions, Chroma, CohereEmbeddings(), routing_keys=["input"] ) Using embedded DuckDB without persistence: data will be transient chain = MultiPromptChain( router_chain=router_chain, destination_chains=destination_chains, de...
· RouterChain LLMChain: LLMChain SimpleSequentialChain:一般序列链可以将前一个链的输出结果,作为后一个链的输入。一般序列链有唯一输入和输出变量。 SimpleSequentialChain SequentialChain:序列链中包含多个链,其中一些链的结果可以作为另一个链的输入。序列链可以支持多个输入和输出变量。
· RouterChain LLMChain: LLMChain SimpleSequentialChain:一般序列链可以将前一个链的输出结果,作为后一个链的输入。一般序列链有唯一输入和输出变量。 SimpleSequentialChain SequentialChain:序列链中包含多个链,其中一些链的结果可以作为另一个链的输入。序列链可以支持多个输入和输出变量。
链是连接组件、管理组件数据流的包装器。基础链的类型有四种:LLM链(LLMChain)、路由器链(RouterChain)...
RouterChain是根据输入动态的选择下一个链,每条链处理特定类型的输入。 RouterChain由两个组件组成: 1)路由器链本身,负责选择要调用的下一个链,主要有2种RouterChain,其中LLMRouterChain通过LLM进行路由决策,EmbeddingRouterChain 通过向量搜索的方式进行路由决策。
const examplePrompt = PromptTemplate.fromTemplate(`Here's an example of an interaction: Q: {example_q} A: {example_a}`); const startPrompt = PromptTemplate.fromTemplate(`Now, do this for real! Q: {input} A:`); const composedPrompt = new PipelinePromptTemplate({ ...
RouterChain可以动态选择要使用的检索系统,例如提示或索引。LangChain 实现链以确保输出内容不会有毒或违反 OpenAI 的管理规则(OpenAIModerationChain),或符合道德、法律或自定义原则(ConstitutionalChain)。LLMCheckerChain 可以通过验证提供的陈述和问题的基础假设来防止幻觉并减少不准确的响应。在 2023 年 5 月的一篇由...