下面整理的LangChain部分核心概念:
- 聊天模型【Chat models】:通过聊天 API 暴露的大语言模型(LLMs),将消息序列作为输入,并输出一条消息。
- 消息【Messages】:聊天模型中的通信单元,用于表示模型的输入和输出。
- 聊天记录【Chat history】:以消息序列形式表示的对话,用户消息和模型回复交替出现。
- 工具【Tools】:具有相关模式的函数,该模式定义了函数的名称、描述以及它的参数。
- 工具调用【Tool calling】:聊天模型 API,它接受函数模式以及消息作为输入,并在输出消息中返回对这些工具的调用。
- 结构化输出【Structured output】:使聊天模型以结构化格式(如符合给定模式的 JSON)进行响应的技术。
- 记忆【Memory】:保存关于对话的信息。
- 多模【Multimodality】态:能够处理不同形式数据(如文本、音频、图像和视频)的能力。
- 可运行接口【Runnable interface】:LangChain 组件和 LangChain 表达式语言的基本抽象。
- 流式传输【Streaming】:流式 API,用于实时展示生成的结果。
- LangChain 表达式语言【LangChain Expression Language (LCEL):】:用于编排组件的语法。
- 文档加载器【Document loaders】:将数据源加载为文档列表。
- 检索【Retrieval】:检索系统根据查询条件从数据源中检索结构化或非结构化数据。
- 文本分割器【Text splitters】:将长文本分割成较小的块,这些块可以被单独索引,从而实现精细检索。
- 嵌入模型【Embedding models】:将数据(如文本或图像)表示在向量空间中的模型。
- 向量存储【Vector stores】:存储向量及其相关元数据,并高效搜索。
- 检索器【Retriever】:根据查询条件从知识库中返回相关文档的组件。
- 检索增强生成【Retrieval Augmented Generation (RAG)】:通过将语言模型与外部知识库结合来增强语言模型的技术。
- 智能体【Agents】:使用语言模型选择要采取的行动。智能体可以通过工具与外部资源进行交互。
- 提示模板【Prompt templates】:用于提取模型 “提示”(通常是一系列消息)中静态部分的组件。对于序列化、版本控制和重用这些静态部分很有用。
- 输出解析器【Output parsers】:将模型的输出转换为适合下游任务的格式。在工具调用和结构化输出也能起到类似作用。
- 少样本提示【Few-shot prompting】:通过在提示中提供少量要执行任务的示例来提高模型性能。
- 示例选择器【Example selectors】:从数据集中选择最相关的示例。示例选择器在少样本提示中用于为提示选择示例。
- 回调【Callbacks】:回调允许在内置组件中执行自定义辅助代码。在LangChain中,回调用于流式传输的输出、跟踪应用程序的中间步骤等。