分享
LangChain 完整指南:使用大型语言模型构建强大的应用程序
输入“/”快速插入内容
LangChain 完整指南:使用大型语言模型构建强大的应用程序
2024年8月19日修改
作者:北方的郎
原文:
https://zhuanlan.zhihu.com/p/631954...
LangChain 是一个强大的框架,可以简化构建高级语言模型应用程序的过程。它使开发人员能够使用大型语言模型(LLM) 和其他计算资源构建强大的应用程序。在本指南中,我将简要介绍 LangChain 的工作原理并探索一些很酷的用例,例如问答、聊天机器人和代理。我还将引导您完成快速入门指南,以帮助您入门。让我们开始!
LangChain是什么?
LangChain是一个强大的框架,旨在帮助开发人员使用语言模型构建端到端的应用程序。它提供了一套工具、组件和界面,可简化创建由大型语言模型 (LLM) 和聊天模型提供支持的应用程序的过程。LangChain 可以轻松管理与语言模型的交互,将多个组件链接在一起,并集成额外的资源,例如 API 和数据库。
LangChain有很多核心概念。让我们一一浏览:
1.组件和链条(Components and Chains)
在 LangChain 中,组件是模块化的构建块,可以组合起来创建强大的应用程序。链是组合在一起以完成特定任务的一系列组件(或其他链)。例如,一个链可能包括一个提示模板、一个语言模型和一个输出解析器,它们一起工作以处理用户输入、生成响应并处理输出。
2.提示模板和值(Prompt Templates and Values)
Prompt Template 负责创建 PromptValue,这是最终传递给语言模型的内容。提示模板有助于将用户输入和其他动态信息转换为适合语言模型的格式。PromptValues 是具有方法的类,这些方法可以转换为每个模型类型期望的确切输入类型(如文本或聊天消息)。
3. 示例选择器( Example Selectors)
当您想要在提示中动态包含示例时,示例选择器很有用。他们接受用户输入并返回一个示例列表以在提示中使用,使其更强大和特定于上下文。
4.输出解析器(Output Parsers)
输出解析器负责将语言模型响应构建为更有用的格式。它们实现了两种主要方法:一种用于提供格式化指令,另一种用于将语言模型的响应解析为结构化格式。这使得在您的应用程序中处理输出数据变得更加容易。
5. 索引和检索器(Indexes and Retrievers)
索引是一种组织文档的方式,使语言模型更容易与它们交互。检索器是用于获取相关文档并将它们与语言模型组合的接口。LangChain 提供了用于处理不同类型的索引和检索器的工具和功能,例如矢量数据库和文本拆分器。
6.聊天消息历史(Chat Message History)
LangChain 主要通过聊天界面与语言模型进行交互。ChatMessageHistory 类负责记住所有以前的聊天交互,然后可以将这些交互传递回模型、汇总或以其他方式组合。这有助于维护上下文并提高模型对对话的理解。
7. 代理和工具包(Agents and Toolkits)
代理是在 LangChain 中推动决策制定的实体。他们可以访问一套工具,并可以根据用户输入决定调用哪个工具。工具包是一组工具,当它们一起使用时,可以完成特定的任务。代理执行器负责使用适当的工具运行代理。
通过理解和利用这些核心概念,您可以利用 LangChain 的强大功能来构建适应性强、高效且能够处理复杂用例的高级语言模型应用程序。
什么是LangChain Agent?
LangChain Agent 是驱动框架中决策制定的实体。它可以访问一组工具,并可以根据用户的输入决定调用哪个工具。代理帮助构建复杂的应用程序,这些应用程序需要自适应和特定于上下文的响应。当存在取决于用户输入和其他因素的未知交互链时,它们特别有用。
人们会如何使用 LangChain?
要使用 LangChain,开发人员首先要导入必要的组件和工具,例如 LLM、聊天模型、代理、链和Memory功能。这些组件组合起来创建一个可以理解、处理和响应用户输入的应用程序。
LangChain 为特定用例提供了多种组件,例如个人助理、文档问答、聊天机器人、查询表格数据、与 API 交互、提取、评估和汇总。
什么是 LangChain 模型?
LangChain 模型是一种抽象,表示框架中使用的不同类型的模型。LangChain 中的模型主要分为三类:
LLM(大型语言模型):这些模型将文本字符串作为输入并返回文本字符串作为输出。它们是许多语言模型应用程序的支柱。
聊天模型:聊天模型由语言模型支持,但具有更结构化的 API。他们将聊天消息列表作为输入并返回聊天消息。这使得管理对话历史记录和维护上下文变得容易。
文本嵌入模型(
Text Embedding Models
):这些模型将文本作为输入并返回表示文本嵌入的浮点列表。这些嵌入可用于文档检索、聚类和相似性比较等任务。
开发人员可以为他们的用例选择合适的 LangChain 模型,并利用提供的组件来构建他们的应用程序。