LangChain:相关概念指南
来源官网:LangChain > Conceptual guide
本指南更广泛地解释了LangChain框架和AI应用程序背后的关键概念。
我们建议您在深入学习概念指南之前,至少阅读一篇教程。这将提供实际背景,使人们更容易理解这里讨论的概念。
概念指南并不提供一步一步的说明或具体的实现示例。这些可以在“如何操作”指南和教程中找到。有关详细参考资料,请参阅API参考资料。
关键概念
- Chat model:对话模型。通过对话API暴露的LLM,该API将消息序列处理为输入并输出消息。
- Messages:消息。对话模型中的通信单元,用于表示模型的输入和输出。
- Chat history:对话历史记录。以消息序列表示的对话,用户消息和模型响应交替出现。
- Tools:工具。带有关联模式的函数,定义函数名称、描述和参数。
- Tool calling:工具调用。一种接受工具模式作为输入的对话模型API,并返回工具调用结果作为输出。
- Structured output:结构化输出。使模型以JSON等结构化格式响应的技术。
- Memory:记忆。持久化存储的对话信息,供未来对话使用。
- Multimodality:多模态能力 。处理文本/音频/图像/视频等不同形式数据的能力。
- Runnable interface:可运行接口。LangChain组件和表达式语言的基础抽象。
- Streaming:流式传输。LangChain实时生成结果的流式API。
- LangChain Expression Language (LCEL):LangChain表达式语言。编排组件的语法,适用于简单应用。
- Document loaders:文档加载器。将数据源加载为文档列表。
- Retrieval:检索系统。根据查询从数据源检索结构化/非结构化数据。
- Text splitters:文本分割器。将长文本切分为可索引的小块。
- Embedding models:嵌入模型。将数据(例如文本或图片)表示为向量空间中的向量。
- Vector stores:向量存储。支持向量及元数据的高效存储检索。
- Retriever:检索器。根据查询返回知识库相关文档的组件。
- Retrieval Augmented Generation (RAG):检索增强生成。结合语言模型与外部知识库的技术。
- Agents:智能体。使用语言模型决策行动序列,可通过工具与外部交互。
- Prompt templates:提示词模板。提取提示词静态部分的组件,便于序列化、版本控制和复用。
- Output parsers:输出解析器。将模型输出转换为更适合下游任务的格式,在工具调用和结构化输出之前,输出解析器是非常有用的。
- Few-shot prompting:少样本提示词。通过少量示例提升模型性能的技术。
- Example selectors:示例选择器。 根据输入选择最相关示例,用于少样本提示。
- Async programming:异步编程,LangChain异步使用的基础知识。
- Callbacks:回调机制。 在组件中执行自定义辅助代码,用于流式输出/中间步骤追踪等。
- Tracing:追踪机制。记录应用从输入到输出的完整过程,用于调试诊断)。
- Evaluation:评估机制。根据一组预定义的标准或基准测试模型的响应,以确保其符合所需的质量标准并实现预期目的。用于评估人工智能应用程序性能和有效性的过程。这个过程对于构建可靠的应用程序至关重要。
- Testing:测试。验证集成或应用程序的组件是否按预期工作的过程。测试对于确保应用程序正确运行以及对代码库的更改不会引入新的错误至关重要。
关联词汇
- AIMessageChunk(AI消息分块):AI消息的部分响应,用于对话模型的流式响应场景。
- AIMessage(AI消息):表示AI模型的完整响应。
- astream_events(异步流式事件):从LCEL链中流式传输细粒度信息。
- BaseTool(基础工具类):LangChain中所有工具的基类。
- batch(批量执行):用于批量输入执行可运行对象。
- bind_tools(绑定工具):允许模型与工具交互。
- Caching(缓存):储结果以避免对聊天模型的冗余调用。
- Chat models(对话模型):支持多模态数据处理的对话模型。
- Configurable runnables(可配置运行体):创建可配置的Runnable对象。
- Context window(上下文窗口):聊天模型可处理的最大输入长度。
- Conversation patterns(对话模式):聊天交互中的常见模式。
- Document(文档):LangChain中表示文档的结构。
- Embedding models(嵌入模型):为各类数据生成向量嵌入的模型。
- HumanMessage(用户消息):表示来自用户的聊天消息。
- InjectedState(注入状态):注入到工具函数中的状态。
- InjectedStore(注入存储):可注入工具中以实现数据持久化的存储。
- InjectedToolArg(工具参数注入):向工具函数注入参数的机制。
- input and output types(输入输出类型):Runnable的输入输出数据类型。
- Integration packages(集成包):与LangChain集成的第三方包。
- Integration tests(集成测试):验证组件间交互的测试,需依赖底层API。
- invoke(调用):执行Runnable的标准方法。
- JSON mode(JSON模式):以JSON格式返回响应。
- langchain-community(社区包):社区驱动的LangChain组件库。
- langchain-core(核心包):包含基础接口与内存实现的LangChain核心库。
- langchain(主包):高级组件库(如预构建链)。
- langgraph(编排层):LangChain的复杂流程编排框架。
- langserve(服务部署):将Runnable部署为REST端点(基于FastAPI)。
- LLMs(传统模型):旧版语言模型,输入输出均为字符串。
- Managing chat history(管理聊天记录):维护对话历史的技术。
- OpenAI format(OpenAI格式):OpenAI聊天模型的消息格式。
- Propagation of RunnableConfig(配置传递):在Runnable间传递配置(Python 3.9/3.10异步场景需关注)。
- rate-limiting(速率限制):客户端对聊天模型的调用频率限制。
- RemoveMessage(消息移除):从历史中删除消息的抽象(主要用于LangGraph)。
- role(角色标识):消息的角色(如用户、助手)。
- RunnableConfig(运行配置):向Runnable传递运行时信息(如
run_name
、metadata
等)。 - Standard parameters for chat models(标准参数):API密钥、温度(
temperature
)、最大令牌数(max_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(类型覆盖):覆盖Runnable的输入输出类型(适用于复杂LCEL链与LangServe部署)。