Skip to main content
Open on GitHub

概念指南

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

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

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

高级

概念

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

术语表

  • AIMessageChunk: 来自AI消息的部分响应。用于从聊天模型流式传输响应时。
  • AIMessage: 表示来自AI模型的完整响应。
  • astream_events: 从LCEL链中流式传输详细信息。
  • BaseTool: LangChain中所有工具的基类。
  • batch: 用于使用批量输入执行可运行对象。
  • bind_tools: 允许模型与工具进行交互。
  • Caching: 存储结果以避免对聊天模型的冗余调用。
  • Chat models: 处理多种数据模态的聊天模型。
  • Configurable runnables: 创建可配置的Runnables。
  • Context window: 聊天模型可以处理的最大输入大小。
  • Conversation patterns: 聊天交互中的常见模式。
  • Document: LangChain 的文档表示。
  • Embedding models: 为各种数据类型生成向量嵌入的模型。
  • HumanMessage: 表示来自人类用户的消息。
  • InjectedState: 注入到工具函数中的状态。
  • InjectedStore: 一个可以注入到工具中以实现数据持久化的存储。
  • InjectedToolArg: 向工具函数注入参数的机制。
  • input and output types: 用于Runnables中输入和输出的类型。
  • Integration packages: 与LangChain集成的第三方包。
  • 集成测试: 验证组件之间交互正确性的测试,通常在有访问底层API权限的情况下运行,以支持集成。
  • invoke: 调用Runnable的标准方法。
  • JSON mode: 以JSON格式返回响应。
  • langchain-community: LangChain的社区驱动组件。
  • langchain-core: 核心langchain包。包括基础接口和内存实现。
  • langchain: 一个用于高级组件(例如,一些预构建的链)的包。
  • langgraph: LangChain的强大编排层。用于构建复杂的管道和工作流。
  • langserve: 用于将LangChain Runnables部署为REST端点。使用FastAPI。主要适用于LangChain Runnables,目前尚未与LangGraph集成。
  • LLMs (legacy): 旧版语言模型,接受字符串作为输入并返回字符串作为输出。
  • 管理聊天记录: 维护和管理聊天记录的技术。
  • OpenAI format: OpenAI的聊天模型消息格式。
  • Propagation of RunnableConfig: 通过Runnables传播配置。如果使用Python 3.9、3.10和异步操作,请阅读。
  • rate-limiting: 聊天模型的客户端速率限制。
  • RemoveMessage: 用于从聊天记录中删除消息的抽象,主要在LangGraph中使用。
  • role: 表示聊天消息的角色(例如,用户、助手)。
  • RunnableConfig: 用于将运行时信息传递给Runnables(例如,run_name, run_id, tags, metadata, max_concurrency, recursion_limit, configurable)。
  • 聊天模型的标准参数: 参数如API密钥、temperaturemax_tokens
  • Standard tests: 所有集成必须通过的一组定义的单元和集成测试。
  • stream: 用于从Runnable或图形中流式输出。
  • Tokenization: 将数据转换为令牌的过程,反之亦然。
  • Tokens: 语言模型在底层读取、处理和生成的基本单位。
  • Tool artifacts: 将工件添加到工具的输出中,这些工件不会发送到模型,但可用于下游处理。
  • Tool binding: 将工具绑定到模型。
  • @tool: 用于在LangChain中创建工具的装饰器。
  • Toolkits: 一组可以一起使用的工具集合。
  • ToolMessage: 表示包含工具执行结果的消息。
  • Unit tests: 验证单个组件正确性的测试,在没有互联网访问的情况下独立运行。
  • Vector stores: 专门用于存储和高效搜索向量嵌入的数据存储。
  • with_structured_output: 一个用于聊天模型的辅助方法,这些模型原生支持工具调用,以获取与通过Pydantic、JSON模式或函数指定的给定模式匹配的结构化输出。
  • with_types: 用于覆盖可运行对象的输入和输出类型的方法。在处理复杂的LCEL链并使用LangServe部署时非常有用。

这个页面有帮助吗?