在LangChain框架中,Composition(组合)是指将不同的系统(例如外部API和服务)和LangChain原语结合起来形成更高级别的组件。在本章的内容中,将详细讲解LangChain中Composition(组合)的知识,为读者步入后面知识的学习打下基础。
6.1 Composition(组合)介绍
Composition(组合)是指将不同的组件和系统以更高层次的方式结合起来,以构建更加强大和复杂的应用程序。这种组合不仅包括LangChain自身的原语(primitives),还可能涉及外部的API和服务。Composition的目的是提供一个更加模块化和可扩展的方法来设计和实现语言处理系统。
在LangChain框架中,Composition的关键构成组件如下所示。
- Tools(工具):Tools是LangChain提供的一些接口,它们允许语言模型和其他组件与外部系统进行交互。例如,可以有一个工具用于访问Wikipedia来获取信息,或者一个计算器工具来进行数学计算,又或者一个Python REPL工具来执行Python代码。这些工具可以被看作是与特定服务或功能进行交互的抽象层。
- Agents(代理):代理是一种特殊的组件,使用语言模型来决定应该采取的动作。这些动作通常是基于工具的输出来定义的。代理需要一个执行器(executor)来实际执行它们决定的动作。执行器负责调用代理,执行代理选择的工具,将动作的输出传回给代理,并根据输出重复这个过程。代理负责解析这些输出,并决定接下来的步骤。
- Chains(链):链是其他原语和组件的组合,它们以构建块的形式存在。通过将不同的原语和组件串联起来,可以创建出复杂的数据处理流程。链可以包含序列执行、并行处理、参数绑定等多种形式的原语,以满足特定的业务逻辑和处理需求。
通过使用Composition,开发者可以创建出高度定制化的应用程序,这些应用程序能够利用LangChain的强大功能,同时与外部世界进行交互。这种方法提供了极高的灵活性,因为开发者可以根据需要选择和组合不同的组件,以实现特定的目标。此外,由于Composition是建立在LangChain原语之上的,因此它也继承了原语的模块化和可重用性,使得整个系统的维护和扩展变得更加容易。