链(Chains)| 豆包MarsCode AI 刷题

65 阅读2分钟

1.什么是 Chain 但是,如果你想开发更复杂的应用程序,那么就需要通过 “Chain” 来链接LangChain的各个组件和功能——模型之间彼此链接,或模型与其他组件链接。 这种将多个组件相互链接,组合成一个链的想法简单但很强大。它简化了复杂应用程序的实现,并使之更加模块化,能够创建出单一的、连贯的应用程序,从而使调试、维护和改进应用程序变得容易。 说到链的实现和使用,也简单。 首先LangChain通过设计好的接口,实现一个具体的链的功能。例如,LLM链(LLMChain)能够接受用户输入,使用 PromptTemplate 对其进行格式化,然后将格式化的响应传递给 LLM。这就相当于把整个Model I/O的流程封装到链里面。 实现了链的具体功能之后,我们可以通过将多个链组合在一起,或者将链与其他组件组合来构建更复杂的链。 所以你看,链在内部把一系列的功能进行封装,而链的外部则又可以组合串联。链其实可以被视为LangChain中的一种基本功能单元。 LangChain中提供了很多种类型的预置链,目的是使各种各样的任务实现起来更加方便、规范。

2.LLMChain:最简单的链 LLMChain围绕着语言模型推理功能又添加了一些功能,整合了PromptTemplate、语言模型(LLM或聊天模型)和 Output Parser,相当于把Model I/O放在一个链中整体操作。它使用提示模板格式化输入,将格式化的字符串传递给 LLM,并返回 LLM 输出。

3.链的调用方式 链有很多种调用方式。 直接调用 刚才我们是直接调用的链对象。当我们像函数一样调用一个对象时,它实际上会调用该对象内部实现的__call__方法。 如果你的提示模板中包含多个变量,在调用链的时候,可以使用字典一次性输入它们。

4.Sequential Chain:顺序链 好,到这里,你已经掌握了最基本的LLMChain的用法。下面,我要带着你用Sequential Chain 把几个LLMChain串起来,形成一个顺序链。 这个示例中,我们的目标是这样的: 第一步,我们假设大模型是一个植物学家,让他给出某种特定鲜花的知识和介绍。 第二步,我们假设大模型是一个鲜花评论者,让他参考上面植物学家的文字输出,对鲜花进行评论。 第三步,我们假设大模型是易速鲜花的社交媒体运营经理,让他参考上面植物学家和鲜花评论者的文字输出,来写一篇鲜花运营文案。