LangChain 的链类型丰富多样,可根据具体需求灵活组合,类型包括基础链(LLMChain、SequentialChain)、路由链(RouterChain)、检索链(RetrievalQA、VectorDBQA)、记忆链(
ConversationChain)、对话链(ChatVectorDBChain)、工具链(TransformChain、LLMCheckerChain)和自定义链等。
有时更新不及时,最新的文章和动态请关注公众号:我和AI的成长
最基础的链,它把提示模板(PromptTemplate)和大语言模型(LLMs)结合在一起。其工作流程是,先根据提示模板生成输入文本,再将该文本传递给大语言模型,最后得到输出结果。如上一篇提示词文章中的示例,
通过链(Chain)动态生成提示,可结合不同组件的输出。
通过前置链生成上下文,再结合主提示提升准确性。
代码示例如下:

2.
SequentialChain
(
顺序链)
顺序链形式,
将多个链按顺序连接起来,
每个步骤都有输入和输出,
前一个链的输出会作为后一个链的输入。顺序链包括:SimpleSequentialChain(单输入单输出,所有链必须匹配输入 / 输出格式)和 SequentialChain(多输入多输出,可指定特定的输入 / 输出变量)
2.1 SimpleSequentialChain
步骤2:输入B → 输出C
步骤3:输入C → 输出D
代码示例如下:

更灵活的顺序链形式,
当链需要多个输入变量时,
可以指定完整的输入输出变量映射。
需要访问中间步骤的输出结果时可保留所有中间结果。支持更复杂的
数据流模式。
如以下步骤:





路由链(Router Chain)是一种特殊的链结构,
能够依据输入内容,
把请求导向不同的子链,
动态地选择合适的子链来处理任务。适用于
多领域问答系统(如区分科学、历史、技术问题等)。路由链工作原理和步骤包括:
接收用户的输入、运用路由逻辑(可以是基于规则的,也可以是由 LLMs 驱动的)来分析输入、依据分析结果,选择对应的子链、将输入传递给选中的子链进行处理、返回子链的处理结果。常用的类型包括:
A. RouterChain
它是路由链的核心抽象类,定义了基本接口,负责接收输入并将其路由到合适的子链。
通常需要和下游的 destination chain(目标链)一起使用,形成 “一个网关路由 + 多个下子链” 的架构。该类
不提供具体的路由逻辑,
子类需要自己实现来决定如何将输入路由到不同的子链,实际使用时需要结合具体的路由逻辑来实现。
B. MultiPromptChain
用于在多个提示词之间路由输入,内部维护着一个提示选择器(PromptSelector),
它包含一个提示列表和一个路由逻辑,它根据输入内容挑选出最匹配的提示模板,
能够将输入映射到对应的提示和链上进行处理。
C. MultiRouteChain
提供多路由能力的基类,实现了基本的路由逻辑框架,但需要子类提供具体的路由策略。
D. LLMRouterChain
它利用语言模型(LLM)来生成路由决策。
使用时需要传入作为基底的大语言模型和用作路由的prompt,
包含对用户输入的解析、对路由的指引。
通过对输入进行分析,预测出合适的子链或者工具。







LangChain提供了丰富的链类型,从简单的 LLM 调用到复杂的代理系统,覆盖了各种应用场景。在实际开发中,应根据任务需求选择合适的链类型,遵循 "从简单到复杂" 的原则,合理组合现有组件,并在必要时自定义链以满足特定需求。通过遵循最佳实践,可以构建出高效、可维护、更强大且安全的 LLM 应用。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70046654/viewspace-3095123/
,如需转载,请注明出处,否则将追究法律责任。