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