Skip to main content
Open on GitHub

概念指南

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

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

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

高级

概念

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

术语表

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