Skip to main content
Open on GitHub

概念指南

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

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

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

高层概覽

概念

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

词汇表

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