操作指南
在这里,您将找到“如何……?”类型问题的答案。 这些指南是目标导向和具体的;它们旨在帮助您完成特定任务。 有关概念性解释,请参阅概念指南。 有关端到端演练,请参阅教程。 有关每个类和函数的全面描述,请参阅API 参考。
安装
主要特性
此处重点介绍了使用 LangChain 的核心功能。
组件
这些是构建应用程序时可以使用的核心构建块。
聊天模型
聊天模型是较新形式的语言模型,它接收消息并输出消息。 有关开始使用特定提供商的聊天模型的详细信息,请参阅支持的集成。
- 操作指南:进行函数/工具调用
- 操作指南:使模型返回结构化输出
- 操作指南:缓存模型响应
- 操作指南:获取对数概率
- 操作指南:创建自定义聊天模型类
- 操作指南:流式传输响应
- 操作指南:跟踪令牌使用情况
- 操作指南:跨提供商跟踪响应元数据
- 操作指南:使用聊天模型调用工具
- 操作指南:流式传输工具调用
- 操作指南:处理速率限制
- 操作指南:少量提示工具行为
- 操作指南:绑定特定于模型格式的工具
- 操作指南:强制特定的工具调用
- 操作指南:使用本地模型
- 操作指南:在一行中初始化任何模型
消息
消息是聊天模型的输入和输出。 它们具有一些 content
和 role
,用于描述消息的来源。
提示模板
提示模板负责将用户输入格式化为可以传递给语言模型的格式。
示例选择器
示例选择器负责选择正确的少量示例以传递给提示。
- 操作指南:使用示例选择器
- 操作指南:按长度选择示例
- 操作指南:按语义相似性选择示例
- 操作指南:按语义 n-gram 重叠选择示例
- 操作指南:通过最大边际相关性选择示例
- 操作指南:从 LangSmith 少量示例数据集中选择示例
LLMs
LangChain 称为LLMs 的是较旧形式的语言模型,它接收字符串并输出字符串。
输出解析器
输出解析器负责获取 LLM 的输出并解析为更结构化的格式。
- 操作指南:从消息对象解析文本
- 操作指南:使用输出解析器将 LLM 响应解析为结构化格式
- 操作指南:解析 JSON 输出
- 操作指南:解析 XML 输出
- 操作指南:解析 YAML 输出
- 操作指南:在输出解析错误发生时重试
- 操作指南:尝试修复输出解析中的错误
- 操作指南:编写自定义输出解析器类
文档加载器
文档加载器负责从各种来源加载文档。
- 操作指南:加载 PDF 文件
- 操作指南:加载网页
- 操作指南:加载 CSV 数据
- 操作指南:从目录加载数据
- 操作指南:加载 HTML 数据
- 操作指南:加载 JSON 数据
- 操作指南:加载 Markdown 数据
- 操作指南:加载 Microsoft Office 数据
- 操作指南:编写自定义文档加载器
文本分割器
文本分割器获取文档并将其分割成可用于检索的块。
- 操作指南:递归分割文本
- 操作指南:分割 HTML
- 操作指南:按字符分割
- 操作指南:分割代码
- 操作指南:按标题分割 Markdown
- 操作指南:递归分割 JSON
- 操作指南:将文本分割成语义块
- 操作指南:按令牌分割
嵌入模型
嵌入模型获取一段文本并创建其数值表示。 有关开始使用特定提供商的嵌入模型的详细信息,请参阅支持的集成。
向量存储
向量存储是能够有效存储和检索嵌入的数据库。 有关开始使用特定提供商的向量存储的详细信息,请参阅支持的集成。
检索器
检索器负责获取查询并返回相关文档。
- 操作指南:使用向量存储检索数据
- 操作指南:生成多个查询以检索数据
- 操作指南:使用上下文压缩来压缩检索到的数据
- 操作指南:编写自定义检索器类
- 操作指南:向检索器结果添加相似度分数
- 操作指南:合并来自多个检索器的结果
- 操作指南:重新排序检索到的结果以减轻“中间迷失”效应
- 操作指南:为每个文档生成多个嵌入
- 操作指南:检索块的整个文档
- 操作指南:生成元数据过滤器
- 操作指南:创建时间加权检索器
- 操作指南:使用混合向量和关键字检索
索引
索引是将向量存储与底层数据源保持同步的过程。
工具
LangChain 工具包含工具的描述(传递给语言模型)以及要调用的函数的实现。 有关预构建工具的列表,请参阅此处。
- 操作指南:创建工具
- 操作指南:使用内置工具和工具包
- 操作指南:使用聊天模型调用工具
- 操作指南:将工具输出传递给聊天模型
- 操作指南:将运行时值传递给工具
- 操作指南:为工具添加人工参与环节
- 操作指南:处理工具错误
- 操作指南:强制模型调用工具
- 操作指南:禁用并行工具调用
- 操作指南:从工具访问
RunnableConfig
- 操作指南:从工具流式传输事件
- 操作指南:从工具返回工件
- 操作指南:将 Runnables 转换为工具
- 操作指南:向模型添加即席工具调用功能
- 操作指南:传入运行时密钥
多模态
Agents
有关 Agents 的深入操作指南,请查看 LangGraph 文档。
回调
回调允许您连接到 LLM 应用程序执行的各个阶段。
自定义
LangChain 的所有组件都可以轻松扩展以支持您自己的版本。
- 操作指南:创建自定义聊天模型类
- 操作指南:创建自定义 LLM 类
- 操作指南:创建自定义嵌入类
- 操作指南:编写自定义检索器类
- 操作指南:编写自定义文档加载器
- 操作指南:编写自定义输出解析器类
- 操作指南:创建自定义回调处理程序
- 操作指南:定义自定义工具
- 操作指南:分派自定义回调事件
序列化
用例
这些指南涵盖特定用例的详细信息。
使用 RAG 进行问答
检索增强生成 (RAG) 是一种将 LLM 连接到外部数据源的方法。 有关 RAG 的高级教程,请查看本指南。
抽取
抽取是指当您使用 LLM 从非结构化文本中抽取结构化信息时。 有关抽取的更高级别教程,请查看本指南。
聊天机器人
聊天机器人涉及使用 LLM 进行对话。 有关构建聊天机器人的高级教程,请查看本指南。
查询分析
查询分析是使用 LLM 生成要发送到检索器的查询的任务。 有关查询分析的高级教程,请查看本指南。
基于 SQL + CSV 的问答
您可以使用 LLM 对表格数据进行问答。 有关高级教程,请查看本指南。
基于图数据库的问答
您可以使用 LLM 对图数据库进行问答。 有关高级教程,请查看本指南。
总结
LLM 可以总结和提炼文本中的所需信息,包括大量文本。 有关高级教程,请查看本指南。
LangChain 表达式语言 (LCEL)
LCEL 是一种编排解决方案。 有关何时使用 LCEL 的建议,请参阅我们的概念页面。
LangChain 表达式语言是一种创建任意自定义链的方法。 它构建在 Runnable 协议之上。
LCEL 速查表:快速概述如何使用主要的 LCEL 原语。
迁移指南:用于将旧版链抽象迁移到 LCEL。
- 操作指南:链接 Runnables
- 操作指南:流式传输 Runnables
- 操作指南:在并行环境中调用 Runnables
- 操作指南:向 Runnables 添加默认调用参数
- 操作指南:将任何函数转换为 Runnable
- 操作指南:将输入从一个链步骤传递到下一步
- 操作指南:在运行时配置 Runnable 行为
- 操作指南:向链添加消息历史记录(内存)
- 操作指南:在子链之间路由
- 操作指南:创建动态(自构建)链
- 操作指南:检查 Runnables
- 操作指南:向 Runnable 添加回退
- 操作指南:将运行时密钥传递给 Runnable
LangGraph
LangGraph 是 LangChain 的扩展,旨在通过将步骤建模为图中的边和节点,使用 LLM 构建强大且有状态的多 actor 应用程序。
LangGraph 文档目前托管在单独的站点上。 您可以在此处查阅LangGraph 操作指南。
LangSmith
LangSmith 允许您密切跟踪、监视和评估您的 LLM 应用程序。 它与 LangChain 和 LangGraph 无缝集成,您可以使用它来检查和调试您构建的链和 Agent 的各个步骤。
LangSmith 文档托管在单独的站点上。 您可以在此处查阅LangSmith 操作指南,但我们将重点介绍以下几个与 LangChain 特别相关的部分
评估
评估性能是构建 LLM 驱动的应用程序的重要组成部分。 LangSmith 可以帮助完成流程的每个步骤,从创建数据集到定义指标再到运行评估器。
要了解更多信息,请查看LangSmith 评估操作指南。
追踪
追踪使您可以观察链和 Agent 内部的情况,这对于诊断问题至关重要。
您可以在LangSmith 文档的此部分中查看与追踪相关的常规操作指南。