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