大模型(LLMs)langchain 篇
什么是 LangChain?
LangChain是一个强大的框架,旨在帮助开发人员使用语言模型构建端到端的应用程序。它提供了一套工具、组件和接口,可简化创建由大型语言模型 (LLM) 和聊天模型提供支持的应用程序的过程。LangChain 可以轻松管理与语言模型的交互,将多个组件链接在一起,并集成额外的资源,例如 API 和数据库。
LangChain 包含哪些 核心概念?
LangChain 中 Components and Chains 是什么?
- Component:模块化的构建块,可以组合起来创建强大的应用程序;
- Chain:组合在一起以完成特定任务的一系列 Components(或其他 Chain);
LangChain 中 Prompt Templates and Values 是什么?
- Prompt Template 作用:负责创建 PromptValue,这是最终传递给语言模型的内容;
- Prompt Template 特点:有助于将用户输入和其他动态信息转换为适合语言模型的格式。PromptValues 是具有方法的类,这些方法可以转换为每个模型类型期望的确切输入类型(如文本或聊天消息)。
LangChain 中 Example Selectors 是什么?
- 作用:当您想要在 Prompts 中动态包含示例时,Example Selectors 很有用。他们接受用户输入并返回一个示例列表以在提示中使用,使其更强大和特定于上下文。
LangChain 中 Output Parsers 是什么?
- 作用:负责将语言模型响应构建为更有用的格式;
- 实现方法:
- 一种用于提供格式化指令;
- 另一种用于将语言模型的响应解析为结构化格式;
- 特点:使得在您的应用程序中处理输出数据变得更加容易。
LangChain 中 Indexes and Retrievers 是什么?
- Index:一种组织文档的方式,使语言模型更容易与它们交互;
- Retrievers:用于获取相关文档并将它们与语言模型组合的接口;
LangChain 中 Chat Message History 是什么?
- Chat Message History 作用:负责记住所有以前的聊天交互数据,然后可以将这些交互数据传递回模型、汇总或以其他方式组合;
- 优点:有助于维护上下文并提高模型对对话的理解。
LangChain 中 Agents and Toolkits 是什么?
- Agent:在 LangChain 中推动决策制定的实体。他们可以访问一套工具,并可以根据用户输入决定调用哪个工具;
- Tookits:一组工具,当它们一起使用时,可以完成特定的任务。代理执行器负责使用适当的工具运行代理。
什么是 LangChain Agent?
- 介绍:LangChain Agent 是框架中驱动决策制定的实体。它可以访问一组工具,并可以根据用户的输入决定调用哪个工具;
- 优点:LangChain Agent 帮助构建复杂的应用程序,这些应用程序需要自适应和特定于上下文的响应。当存在取决于用户输入和其他因素的未知交互链时,它们特别有用。
如何使用 LangChain ?
要使用 LangChain,开发人员首先要导入必要的组件和工具,例如 LLMs, chat models, agents, chains, 内存功能。这些组件组合起来创建一个可以理解、处理和响应用户输入的应用程序。
LangChain 支持哪些功能?
- 针对特定文档的问答:根据给定的文档回答问题,使用这些文档中的信息来创建答案。
- 聊天机器人:构建可以利用 LLM 的功能生成文本的聊天机器人。
- Agents:开发可以决定行动、采取这些行动、观察结果并继续执行直到完成的代理。
什么是 LangChain model?
LangChain model 是一种抽象,表示框架中使用的不同类型的模型。LangChain 中的模型主要分为三类:
- LLM(大型语言模型):这些模型将文本字符串作为输入并返回文本字符串作为输出。它们是许多语言模型应用程序的支柱。
- 聊天模型( Chat Model):聊天模型由语言模型支持,但具有更结构化的 API。他们将聊天消息列表作为输入并返回聊天消息。这使得管理对话历史记录和维护上下文变得容易。
- 文本嵌入模型(Text Embedding Models):这些模型将文本作为输入并返回表示文本嵌入的浮点列表。这些嵌入可用于文档检索、聚类和相似性比较等任务。
LangChain 包含哪些特点?
LangChain 旨在为六个主要领域的开发人员提供支持:
- LLM 和提示:LangChain 使管理提示、优化它们以及为所有 LLM 创建通用界面变得容易。此外,它还包括一些用于处理 LLM 的便捷实用程序。
- 链(Chain):这些是对 LLM 或其他实用程序的调用序列。LangChain 为链提供标准接口,与各种工具集成,为流行应用提供端到端的链。
- 数据增强生成:LangChain 使链能够与外部数据源交互以收集生成步骤的数据。例如,它可以帮助总结长文本或使用特定数据源回答问题。
- Agents:Agents 让 LLM 做出有关行动的决定,采取这些行动,检查结果,并继续前进直到工作完成。LangChain 提供了代理的标准接口,多种代理可供选择,以及端到端的代理示例。
- 内存:LangChain 有一个标准的内存接口,有助于维护链或代理调用之间的状态。它还提供了一系列内存实现和使用内存的链或代理的示例。
- 评估:很难用传统指标评估生成模型。这就是为什么 LangChain 提供提示和链来帮助开发者自己使用 LLM 评估他们的模型。