跳到主要内容

概念指南

本指南提供了对 LangChain 框架和更广泛的 AI 应用程序背后关键概念的解释。

我们建议您在深入了解概念指南之前,至少完成一个教程。这将提供实际背景,使您更容易理解此处讨论的概念。

概念指南不包括逐步说明或具体实现示例 — 这些内容可以在操作指南教程中找到。有关详细参考资料,请参阅API 参考

高级

概念

  • 聊天模型:通过聊天 API 公开的 LLM,它们将消息序列作为输入并输出一条消息。
  • 消息:聊天模型中的通信单元,用于表示模型输入和输出。
  • 聊天记录:一个对话,表示为消息序列,在用户消息和模型响应之间交替。
  • 工具:一个具有关联架构的函数,定义了函数的名称、描述及其接受的参数。
  • 工具调用:一种聊天模型 API,它接受工具架构以及消息作为输入,并将这些工具的调用作为输出消息的一部分返回。
  • 结构化输出: 一种使聊天模型以结构化格式(例如匹配给定模式的 JSON)响应的技术。
  • 记忆: 关于对话的信息,会被持久化存储,以便在未来的对话中使用。
  • 多模态: 处理来自不同形式的数据(例如文本、音频、图像和视频)的能力。
  • 可运行接口: 许多 LangChain 组件和 LangChain 表达式语言构建于其上的基础抽象。
  • 流式传输: LangChain 流式 API,用于在结果生成时将其呈现出来。
  • LangChain 表达式语言 (LCEL): 一种用于编排 LangChain 组件的语法。对于较简单的应用程序最有用。
  • 文档加载器: 将源加载为文档列表。
  • 检索: 信息检索系统可以从数据源检索结构化或非结构化数据以响应查询。
  • 文本分割器: 将长文本分割成更小的块,这些块可以单独索引以实现精细检索。
  • 嵌入模型: 在向量空间中表示文本或图像等数据的模型。
  • 向量存储: 向量和相关元数据的存储和高效搜索。
  • 检索器: 一种组件,它从知识库中返回与查询相关的文档。
  • 检索增强生成 (RAG): 一种通过将语言模型与外部知识库相结合来增强语言模型的技术。
  • 代理: 使用 语言模型 来选择要执行的操作序列。代理可以通过 工具 与外部资源进行交互。
  • 提示模板: 用于分解模型“提示”(通常是消息序列)的静态部分的组件。对于序列化、版本控制和重用这些静态部分非常有用。
  • 输出解析器: 负责获取模型的输出并将其转换为更适合下游任务的格式。在 工具调用结构化输出 普遍可用之前,输出解析器主要有用。
  • 少样本提示: 一种通过在提示中提供几个要执行的任务示例来提高模型性能的技术。
  • 示例选择器: 用于根据给定输入从数据集中选择最相关的示例。示例选择器用于少样本提示中,为提示选择示例。
  • 异步编程: 在异步上下文中使用 LangChain 时应了解的基础知识。
  • 回调: 回调使内置组件能够执行自定义辅助代码。回调用于在 LangChain 中流式传输来自 LLM 的输出、跟踪应用程序的中间步骤等等。
  • 跟踪: 记录应用程序从输入到输出所采取步骤的过程。跟踪对于调试和诊断复杂应用程序中的问题至关重要。
  • 评估: 评估人工智能应用程序的性能和有效性的过程。这涉及根据一组预定义的标准或基准测试模型的响应,以确保其满足所需的质量标准并实现预期的目的。此过程对于构建可靠的应用程序至关重要。
  • 测试: 验证集成或应用程序的组件是否按预期工作的过程。测试对于确保应用程序行为正确以及对代码库的更改不会引入新的错误至关重要。

词汇表

  • AIMessageChunk: 来自 AI 消息的部分响应。在流式传输来自聊天模型的响应时使用。
  • AIMessage: 表示来自 AI 模型的完整响应。
  • astream_events: 从 LCEL 链流式传输细粒度信息。
  • BaseTool: LangChain 中所有工具的基类。
  • batch: 用于对可运行对象使用批量输入来执行可运行对象。
  • bind_tools: 允许模型与工具交互。
  • 缓存: 存储结果以避免对聊天模型进行冗余调用。
  • 聊天模型: 处理多种数据模态的聊天模型。
  • 可配置的可运行对象: 创建可配置的可运行对象。
  • 上下文窗口: 聊天模型可以处理的最大输入大小。
  • 对话模式: 聊天交互中的常见模式。
  • 文档: LangChain 对文档的表示。
  • 嵌入模型: 为各种数据类型生成向量嵌入的模型。
  • HumanMessage: 表示来自人类用户的消息。
  • InjectedState: 注入到工具函数中的状态。
  • InjectedStore: 可以注入到工具中进行数据持久化的存储。
  • InjectedToolArg: 将参数注入工具函数的机制。
  • 输入和输出类型: 用于可运行对象中输入和输出的类型。
  • 集成包: 与 LangChain 集成的第三方包。
  • 集成测试: 验证组件之间交互正确性的测试,通常在访问支持集成的底层 API 的情况下运行。
  • invoke: 调用可运行对象的标准方法。
  • JSON 模式: 以 JSON 格式返回响应。
  • langchain-community: LangChain 的社区驱动组件。
  • langchain-core: 核心 Langchain 包。包括基本接口和内存中的实现。
  • langchain: 用于更高级别组件(例如,一些预构建的链)的包。
  • langgraph: LangChain 的强大编排层。用于构建复杂的管道和工作流程。
  • langserve: 用于将 LangChain 可运行对象部署为 REST 端点。使用 FastAPI。主要适用于 LangChain 可运行对象,目前不与 LangGraph 集成。
  • LLMs(旧版): 将字符串作为输入并返回字符串作为输出的旧版语言模型。
  • 管理聊天历史记录: 维护和管理聊天历史记录的技术。
  • OpenAI 格式: OpenAI 的聊天模型消息格式。
  • RunnableConfig 的传播: 通过可运行对象传播配置。如果使用 python 3.9、3.10 和 async,请阅读。
  • 速率限制: 聊天模型的客户端速率限制。
  • RemoveMessage: 用于从聊天历史记录中删除消息的抽象,主要在 LangGraph 中使用。
  • role: 表示聊天消息的角色(例如,用户、助手)。
  • RunnableConfig: 用于将运行时信息传递给可运行对象(例如,run_namerun_idtagsmetadatamax_concurrencyrecursion_limitconfigurable)。
  • 聊天模型的标准参数: 诸如 API 密钥、temperaturemax_tokens 等参数。
  • 标准测试: 所有集成都必须通过的一组定义的单元测试和集成测试。
  • stream: 用于从可运行对象或图流式传输输出。
  • 分词: 将数据转换为标记以及反向转换的过程。
  • 标记: 语言模型在底层读取、处理和生成的基本单元。
  • 工具工件: 向工具的输出添加不会发送到模型,但可用于下游处理的工件。
  • 工具绑定: 将工具绑定到模型。
  • @tool: 用于在 LangChain 中创建工具的装饰器。
  • 工具包: 可以一起使用的一组工具。
  • ToolMessage: 表示包含工具执行结果的消息。
  • 单元测试: 验证各个组件正确性的测试,在不访问 Internet 的情况下单独运行。
  • 向量存储: 专门用于存储和高效搜索向量嵌入的数据存储。
  • with_structured_output: 一种用于本地支持 工具调用 的聊天模型的辅助方法,用于获取与通过 Pydantic、JSON 模式或函数指定的给定模式匹配的结构化输出。
  • with_types: 用于覆盖可运行对象的输入和输出类型的方法。在处理复杂的 LCEL 链并使用 LangServe 部署时非常有用。

此页面对您有帮助吗?