当前位置: 首页 > news >正文

LangChain操作指南

在这里,您将找到“我如何....?”类型的问题的答案。 这些指南以目标为导向具体;它们旨在帮助您完成特定任务。 有关概念说明,请参阅概念指南。 有关端到端演练,请参阅教程。 有关每个类和函数的全面说明,请参阅 API 参考。

安装

  • 如何:安装 LangChain 软件包
  • 如何:将 LangChain 与不同的 Pydantic 版本一起使用

主要特点

这突出了使用 LangChain 的核心功能。

  • 如何:从模型返回结构化数据
  • 如何:使用模型调用工具
  • 如何:流式传输 Runnables
  • 如何:调试 LLM 应用程序

组件

这些是您在构建应用程序时可以使用的核心构建块。

聊天模型

聊天模型是较新的语言模型形式,用于接收消息并输出消息。 请参阅 支持的集成 有关开始使用特定提供商的聊天模型的详细信息。

  • 如何:执行函数/工具调用
  • 如何:获取模型以返回结构化输出
  • 如何:缓存模型响应
  • 如何:获取对数概率
  • 如何:创建自定义聊天模型类
  • 如何:流回响应
  • 如何:跟踪令牌使用情况
  • 如何:跨提供程序跟踪响应元数据
  • 如何:使用聊天模型调用工具
  • 如何:流式传输工具调用
  • 如何:处理速率限制
  • 如何:少数镜头提示工具行为
  • 如何:绑定特定于模型的格式化工具
  • 如何:强制特定工具调用
  • 如何:使用本地模型
  • 如何:在一行中初始化任何模型
  • 如何:将多模态数据直接传递给模型

消息

消息是聊天模型的输入和输出。他们有一些content以及role,它描述了消息的来源。

  • 如何:剪裁消息
  • 如何:筛选消息
  • 如何:合并相同类型的连续消息

提示模板

提示模板负责将用户输入的格式格式化为可传递给语言模型的格式。

  • 如何:使用少量镜头示例
  • 如何:在聊天模型中使用少量镜头示例
  • 如何:部分设置提示模板的格式
  • 如何:一起编写提示
  • 如何:使用多模式提示

选择器示例

示例 选择器 负责选择正确的几个镜头示例以传递给提示符。

  • 如何:使用示例选择器
  • 如何:按长度选择示例
  • 如何:按语义相似性选择示例
  • 如何:通过语义 ngram 重叠选择示例
  • 如何:按最大边际相关性选择示例
  • 如何:从 LangSmith 小样本数据集中选择示例

LLM

LangChain 所说的 LLM 是旧形式的语言模型,它们接受字符串并输出字符串。

  • 如何:缓存模型响应
  • 如何:创建自定义 LLM 类
  • 如何:流回响应
  • 如何:跟踪令牌使用情况
  • 如何:使用本地模型

输出解析器

Output Parser 负责获取 LLM 的输出并解析为更结构化的格式。

  • 如何:解析 message 对象中的文本
  • 如何:使用输出解析器将 LLM 响应解析为结构化格式
  • 如何:分析 JSON 输出
  • 如何:分析 XML 输出
  • 如何:分析 YAML 输出
  • 如何:在发生输出解析错误时重试
  • 如何:尝试修复输出解析中的错误
  • 如何:编写自定义输出分析程序类

文档加载器

Document Loader 负责从各种来源加载文档。

  • 如何:加载 PDF 文件
  • 如何:加载网页
  • 如何:加载 CSV 数据
  • 如何:从目录加载数据
  • 如何:加载 HTML 数据
  • 如何:加载 JSON 数据
  • 如何:加载 Markdown 数据
  • 如何:加载 Microsoft Office 数据
  • 如何:编写自定义文档加载程序

文本拆分器

文本拆分器获取文档并拆分为可用于检索的块。

  • 如何:递归拆分文本
  • 如何:拆分 HTML
  • 如何:按字符拆分
  • 如何:拆分代码
  • 如何:按标头拆分 Markdown
  • 如何:递归拆分 JSON
  • 如何:将文本拆分为语义块
  • 如何:按标记拆分

嵌入模型

Embedding Models 获取一段文本并创建它的数字表示。 有关开始使用来自特定提供商的嵌入模型的详细信息,请参阅支持的集成。

  • 如何:嵌入文本数据
  • 如何:缓存嵌入结果
  • 如何:创建自定义嵌入类

矢量存储

向量存储是可以有效存储和检索嵌入的数据库。 有关开始使用特定提供商提供的 vector stores 的详细信息,请参阅支持的集成。

  • 如何:使用向量存储检索数据

Retriever

检索器负责执行查询并返回相关文档。

  • 如何:使用向量存储检索数据
  • 如何:生成多个查询以检索其数据
  • 如何:使用上下文压缩来压缩检索到的数据
  • 如何:编写自定义 retriever 类
  • 如何:向检索器结果添加相似性分数
  • 如何:合并来自多个检索器的结果
  • 如何:对检索到的结果重新排序以减轻“lost in the middle”效应
  • 如何:为每个文档生成多个嵌入
  • 如何:检索块的整个文档
  • 如何:生成元数据筛选器
  • 如何:创建时间加权检索器
  • 如何:使用混合向量和关键字检索

索引

索引是使 vectorstore 与底层数据源保持同步的过程。

  • 如何:重新索引数据以保持 vectorstore 与底层数据源同步

工具

LangChain 工具包含工具的描述(传递给语言模型)以及要调用的函数的实现。有关预构建工具的列表,请参阅此处。

  • 如何:创建工具
  • 如何:使用内置工具和工具包
  • 如何:使用聊天模型调用工具
  • 如何:将工具输出传递给聊天模型
  • 如何:将运行时值传递给工具
  • 如何:为工具添加 Human-in-the-loop
  • 如何:处理工具错误
  • 如何:强制模型调用工具
  • 如何:禁用并行工具调用
  • 如何:访问RunnableConfig从工具
  • 如何:从工具流式传输事件
  • 如何:从工具返回对象
  • 如何:将 Runnables 转换为工具
  • 如何:向模型添加临时工具调用功能
  • 如何:传入运行时机密

模 态

  • 如何:将多模态数据直接传递给模型
  • 如何:使用多模式提示

代理

注意

有关代理的深入作指南,请查看 LangGraph 文档。

  • 如何:使用旧版 LangChain 代理 (AgentExecutor)
  • 如何:从旧版 LangChain 代理迁移到 LangGraph

回调

回调允许您挂接到 LLM 应用程序执行的各个阶段。

  • 如何:在运行时传入回调
  • 如何:将回调附加到模块
  • 如何:将回调传递到模块构造函数中
  • 如何:创建自定义回调处理程序
  • 如何:在异步环境中使用回调
  • 如何:调度自定义回调事件

自定义

所有 LangChain 组件都可以轻松扩展以支持您自己的版本。

  • 如何:创建自定义聊天模型类
  • 如何:创建自定义 LLM 类
  • 如何:创建自定义嵌入类
  • 如何:编写自定义 retriever 类
  • 如何:编写自定义文档加载程序
  • 如何:编写自定义输出分析程序类
  • 如何:创建自定义回调处理程序
  • 如何:定义自定义工具
  • 如何:调度自定义回调事件

序列化

  • 如何:保存和加载 LangChain 对象

使用案例

这些指南涵盖了特定于用例的详细信息。

与 RAG 的问答

检索增强生成 (RAG) 是一种将 LLM 连接到外部数据源的方法。 有关 RAG 的高级教程,请查看本指南。

  • 如何:添加聊天记录
  • 如何:流式传输
  • 如何:返回源
  • 如何:返回引文
  • 如何:执行每用户检索

萃取

提取是指使用 LLM 从非结构化文本中提取结构化信息。 有关提取的高级教程,请查看本指南。

  • 如何:使用参考示例
  • 如何:处理长文本
  • 如何:在不使用函数调用的情况下执行提取

聊天机器人

聊天机器人涉及使用 LLM 进行对话。 有关构建聊天机器人的高级教程,请查看本指南。

  • 如何:管理内存
  • 如何:执行检索
  • 如何:使用工具
  • 如何:管理大型聊天记录

查询分析

查询分析是使用 LLM 生成要发送到检索器的查询的任务。 有关查询分析的高级教程,请查看本指南。

  • 如何:向提示添加示例
  • 如何:处理未生成查询的情况
  • 如何:处理多个查询
  • 如何:处理多个检索器
  • 如何:构造筛选器
  • 如何:处理高基数分类变量

通过 SQL + CSV 的问答

您可以使用 LLM 对表格数据进行问答。 有关高级教程,请查看本指南。

  • 如何:使用提示改进结果
  • 如何:执行查询验证
  • 如何:处理大型数据库
  • 如何:处理 CSV 文件

关于图形数据库的 Q&A

您可以使用 LLM 对图形数据库进行问答。 有关高级教程,请查看本指南。

  • 如何:在数据库上添加语义层
  • 如何:构建知识图谱

综述

LLM 可以从文本中总结和提取所需的信息,包括 大量文本。有关高级教程,请查看本指南。

  • 如何:在单个 LLM 调用中汇总文本
  • 如何:通过并行化汇总文本
  • 如何:通过迭代优化汇总文本

LangChain 表达式语言 (LCEL)

我应该使用 LCEL 吗?

LCEL 是一种编排解决方案。请参阅我们的概念页面,了解有关何时 使用 LCEL。

LangChain 表达式语言是一种创建任意自定义链的方法。它基于 Runnable 协议构建。

LCEL 速查表:有关如何使用主要 LCEL 基元的快速概述。

迁移指南:用于将遗留链抽象迁移到 LCEL。

  • 如何:链 runnables
  • 如何:流式传输 Runnables
  • 如何:并行调用 runnables
  • 如何:向 runnables 添加默认调用 args
  • 如何:将任何函数转换为可运行
  • 如何:将输入从一个链步传递到下一个链步
  • 如何:在运行时配置可运行行为
  • 如何:将消息历史记录(内存)添加到链中
  • 如何:在子链之间路由
  • 如何:创建动态(自构建)链
  • 如何:检查 runnables
  • 如何:向可运行对象添加回退
  • 如何:将运行时机密传递给 runnable

LangGraph

LangGraph 是 LangChain 的扩展,旨在 通过将步骤建模为图形中的边和节点,使用 LLM 构建健壮且有状态的多参与者应用程序。

LangGraph 文档目前托管在单独的站点上。 您可以在此处仔细阅读 LangGraph作指南。

LangSmith

LangSmith 允许您密切跟踪、监控和评估您的 LLM 应用程序。 它与 LangChain 和 LangGraph 无缝集成,您可以在构建时使用它来检查和调试链和代理的各个步骤。

LangSmith 文档托管在单独的站点上。 您可以在此处仔细阅读 LangSmith作指南,但我们将重点介绍几个特别 与 LangChain 相关如下:

评估

评估性能是构建 LLM 支持的应用程序的重要组成部分。 LangSmith 帮助完成从创建数据集到定义指标再到运行评估器的整个过程的每一步。

要了解更多信息,请查看 LangSmith 评估作指南。

描图

跟踪为您提供链和代理内部的可观察性,对于诊断问题至关重要。

  • 如何:使用 LangChain 进行跟踪
  • 如何:向跟踪添加元数据和标记

您可以在 LangSmith 文档的这一部分中查看与跟踪相关的一般作方法。

相关文章:

  • 手把手教你用Appsmith打造企业级低代码平台:从部署到性能调优实战
  • 化工厂爆炸事件看制造业AI转型
  • Manus AI与多语言手写识别的创新革命:从技术突破到行业赋能
  • SpringBoot 自定义注解实现限流
  • 【操作系统原理08】文件管理
  • (三)动手学线性神经网络:从数学原理到代码实现
  • git clone报错:SSL certificate problem: unable to get local issuer certificate
  • 物联网数据归档方案选择分析
  • 【Bluedroid】蓝牙启动之sdp_init 源码解析
  • 帝可得- 人员管理
  • Linux系统-基本指令(5)
  • STM32入门教程——按键控制LED光敏传感器控制蜂鸣器
  • 05 APP 自动化- Appium 单点触控 多点触控
  • 接口自动化测试之pytest 运行方式及前置后置封装
  • 不连网也能跑大模型?
  • YAML文件
  • NLP学习路线图(二十):FastText
  • Python Pytest
  • Read View在MVCC里如何工作
  • 第二章 2.TCP IP Protocol Suite(CCNA)
  • 网站seo怎样做/seo排名点击首页
  • 手机wap网站建设/百度推广手机客户端
  • 东丽天津网站建设/ciliba磁力搜索引擎
  • 毕业设计网站可以做什么/成都seo优化排名推广
  • 用花生壳免费域名做公司网站/百度招商客服电话
  • 榆林做网站/外包公司的优势和劣势