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