在 LangChain 中串联多个模型时,您会使用框架的核心抽象概念:**链(Chain)**。链允许您将模型、提示和其他工具等组件连接到结构化工作流程中。一种常见的方法是创建一个序列,其中一个模型的输出成为下一个模型的输入。例如,您可以使用一个模型来总结文本,然后使用另一个模型来分析该摘要的情感。LangChain 提供了诸如 SequentialChain
或 SimpleSequentialChain
之类的预构建链类,以简化此过程。链中的每个模型通常都包装在一个 LLMChain
中,它将模型与提示模板结合起来格式化输入和输出。
下面是一个实际示例:假设您想生成产品评论,然后将其翻译成法语。首先,使用诸如“为 {product} 写一篇评论:”之类的提示定义一个 LLMChain
。此链的输出将传递给第二个 LLMChain
,其提示类似于“将此翻译成法语: {text}”。使用 SimpleSequentialChain
,您只需极少的代码即可链接这两个步骤。框架会处理将第一个模型的输出传递给第二个模型,确保数据流正确。此方法适用于每个步骤直接依赖于前一个结果的线性工作流程。
对于更复杂的场景,LangChain 支持动态路由和条件逻辑。 RouterChain
类允许您根据预定义规则将输出定向到不同的模型。例如,您可以将技术问题路由到专业模型,将一般查询路由到默认模型。此外,您可以使用 TransformChain
在步骤之间预处理数据,例如提取关键字或验证格式。为了管理步骤之间的依赖关系,SequentialChain
类允许显式指定输入/输出变量,从而实现非线性工作流程。务必先测试各个组件,处理错误(例如 API 失败的重试),并监控成本,因为每次模型调用都可能产生费用。