在这里,你会找到针对 “我该如何……?” 类型问题的答案。这些指南是以实际目标为导向;它们旨在帮助您完成特定任务。
有关概念性解释,请参阅概念指南。
有关端到端的演练,请参阅教程。
有关每个类和函数的详细描述,请参阅API 参考。
安装
主要功能
这些功能是使用 LangChain 的核心。
LangChain 表达语言 (LCEL)
LangChain 表达语言 是创建任意自定义链的一种方式。它构建在 Runnable 协议之上。
LCEL 快速参考:快速了解如何使用主要的 LCEL 基元。
- 如何:链式运行
- 如何:流式运行
- 如何:并行调用运行
- 如何:向运行添加默认调用参数
- 如何:将任何函数转换为可运行对象
- 如何:将输入从一个链步骤传递到下一个
- 如何:在运行时配置可运行对象行为
- 如何:向链添加消息历史 (内存)
- 如何:在子链之间路由
- 如何:创建动态 (自构建) 链
- 如何:检查可运行对象
- 如何:向可运行对象添加回退
组件
这些是构建应用程序时可以使用的核心构建模块。
提示模板
提示模板负责将用户输入格式化为可以传递给语言模型的格式。
示例选择器
示例选择器负责选择要传递给提示的正确少量示例。
聊天模型
聊天模型是一种较新的语言模型形式,它接收消息并输出消息。
LLMs
LangChain 称之为 LLMs 的是一种较早的语言模型形式,它接收字符串并输出字符串。
输出解析器
输出解析器负责将 LLM 的输出解析为更结构化的格式。
- 如何:使用输出解析器将 LLM 响应解析为结构化格式
- 如何:解析 JSON 输出
- 如何:解析 XML 输出
- 如何:解析 YAML 输出
- 如何:在输出解析错误发生时重试
- 如何:尝试修复输出解析中的错误
- 如何:编写自定义输出解析器类
文档加载器
文档加载器负责从各种源加载文档。
- 如何:加载 CSV 数据
- 如何:从目录加载数据
- 如何:加载 HTML 数据
- 如何:加载 JSON 数据
- 如何:加载 Markdown 数据
- 如何:加载 Microsoft Office 数据
- 如何:加载 PDF 文件
- 如何:编写自定义文档加载器
文本拆分器
文本拆分器将文档拆分成可用于检索的块。
- 如何:递归拆分文本
- 如何:按 HTML 标题拆分
- 如何:按 HTML 段拆分
- 如何:按字符拆分
- 如何:拆分代码
- 如何:按标头拆分 Markdown
- 如何:递归拆分 JSON
- 如何:将文本拆分成语义块
- 如何:按标记拆分
嵌入模型
嵌入模型接收一段文本并创建其数值表示。
向量存储
向量存储是能够高效存储和检索嵌入的数据库。
检索器
检索器负责接收查询并返回相关文档。
- 如何:使用向量存储检索数据
- 如何:为多个查询生成检索数据
- 如何:使用上下文压缩压缩检索到的数据
- 如何:编写自定义检索器类
- 如何:将相似度分数添加到检索器结果中
- 如何:将来自多个检索器的结果组合起来
- 如何:重新排序检索结果以减轻“中间丢失”效应
- 如何:为每个文档生成多个嵌入
- 如何:检索块的整个文档
- 如何:生成元数据过滤器
- 如何:创建时间加权检索器
- 如何:使用混合向量和关键词检索
索引
索引是将向量存储与底层数据源保持同步的过程。
工具
LangChain 工具包含工具的描述(用于传递给语言模型)以及要调用的函数的实现。
多模态
代理
注意
有关代理的深入指南,请查看 LangGraph 文档。
回调
自定义
LangChain 所有组件都可以轻松扩展,以支持您自己的版本。
使用案例
这些指南涵盖了特定用例的详细信息。
使用 RAG 进行问答
检索增强生成(RAG)是一种将 LLM 与外部数据源连接起来的方式。
提取
提取是指使用 LLM 从非结构化文本中提取结构化信息。
聊天机器人
聊天机器人涉及使用 LLM 进行对话。
查询分析
查询分析是使用 LLM 生成要发送给检索器的查询的任务。
在 SQL + CSV 上进行问答
您可以使用 LLM 在表格数据上进行问答。
在图数据库上进行问答
您可以使用 LLM 在图数据库上进行问答。