使用 LangChain 构建依托 LLM 的应用

本页面介绍了如何使用 LangChain 构建依托 LLM 的应用。本页上的概览链接到 GitHub 中的过程指南。

什么是 LangChain?

LangChain 是一个 LLM 编排框架,可帮助开发者构建生成式 AI 应用或检索增强生成 (RAG) 工作流。它提供了可简化复杂 LLM 工作流的结构、工具和组件。

如需详细了解 LangChain,请参阅 Google LangChain 页面。如需详细了解 LangChain 框架,请参阅 LangChain 产品文档。

适用于 Spanner 的 LangChain 组件

Spanner 提供以下 LangChain 接口:

如需了解如何在应用中使用这些组件,请参阅 Spanner 专用 LangChain 快速入门

Spanner 的矢量存储区

矢量存储区从矢量数据库中检索并存储文档和元数据。矢量存储区让应用能够执行解释用户查询含义的语义搜索。这种类型的搜索称为矢量搜索,它可以查找在概念上与查询匹配的主题。查询时,矢量存储区会检索与搜索请求的嵌入最相似的嵌入矢量。在 LangChain 中,矢量存储区负责存储嵌入的数据并为您执行矢量搜索。

如需在 Spanner 中使用矢量存储区,请使用 SpannerVectorStore 类。

如需了解详情,请参阅 LangChain 矢量存储区产品文档。

矢量存储区过程指南

关于矢量存储区的 Spanner 指南介绍了如何执行以下操作:

  • 安装集成软件包和 LangChain
  • 为向量存储区初始化表
  • 使用 VertexAIEmbeddings 设置嵌入服务
  • 初始化 SpannerVectorStore
  • 添加和删除文档
  • 搜索类似文档
  • 创建自定义矢量存储区,以连接到包含包含矢量嵌入的表的现有 Spanner 数据库

Spanner 的文档加载器

文档加载器会保存、加载和删除 LangChain Document 对象。例如,您可以将要处理的数据加载到嵌入中,并将其存储在矢量存储区,或将其用作向提供特定上下文的工具。

如需从 Spanner 加载文档,请使用 SpannerLoader 类。使用 SpannerDocumentSaver 类来保存和删除文档。

如需了解详情,请参阅 LangChain 文档加载器主题。

文档加载器过程指南

关于文档加载器的 Spanner 指南介绍了如何执行以下操作:

  • 安装集成软件包和 LangChain
  • 从表中加载文档
  • 向加载器添加过滤条件
  • 自定义连接和身份验证
  • 通过指定客户内容和元数据来自定义文档构建
  • 如何使用并自定义 SpannerDocumentSaver 来存储和删除文档

Spanner 的聊天消息记录

问答应用需要对话中所述内容的历史记录,以便提供应用上下文来回答用户的其他问题。LangChain ChatMessageHistory 类可让应用将消息保存到数据库,并在需要时检索消息来编制更多答案。消息可以是问题、答案、陈述句、问候语或者用户或应用在对话期间提供的其他任何一段文字。ChatMessageHistory 会存储每条消息,并将每个对话的消息链接在一起。

Spanner 使用 SpannerChatMessageHistory 扩展此类。

聊天消息记录过程指南

关于聊天消息记录的 Spanner 指南介绍了如何执行以下操作:

  • 安装 LangChain 并向 Google Cloud进行身份验证
  • 初始化表
  • 初始化 SpannerChatMessageHistory 类以添加和删除消息
  • 使用客户端自定义连接和身份验证
  • 删除 SpannerChatMessageHistory 会话

Spanner 的图存储

图存储区从图数据库中检索并存储节点和边。使用图表存储区可让应用执行以下操作:

  • 向图表中添加节点和边
  • 对图表执行遍历和分析
  • 检查图的架构

您还可以将图表存储区与图表质量检查链结合使用,创建可与图表聊天应用。

如需将图表存储空间与 Spanner Graph 搭配使用,请使用 SpannerGraphStore 类存储从文档中提取的节点和边。SpannerGraphStore支持 Graph Query Language (GQL)。

图表存储区过程指南

关于图表存储区的 Spanner 指南介绍了如何执行以下操作:

  • 安装集成软件包和 LangChain
  • 准备来自各种数据源的图表
  • 使用现有的 Spanner Graph 数据库初始化 SpannerGraphStore
  • 将节点和边添加到 Spanner 图中
  • 使用 GQL 查询执行遍历
  • 直观呈现图表查询结果
  • 清理图表

Spanner 的 Graph QA 链

适用于 Spanner 的图 QA 链使用 Spanner 图来回答问题。用于回答问题的图表 QA 工作流如下所示:

  1. Graph QA 使用 LangChain LLM 将自然语言问题转换为 GQL 查询。
  2. Spanner Graph 使用图存储接口运行 GQL 查询。
  3. GQL 查询结果会发送回 LLM。
  4. LLM 会生成并返回问题的答案。

图表质量检查流程指南

图表 QA 专用 Spanner 指南演示了如何使用 Spanner 和图表 QA 回答问题,具体方法是介绍如何执行以下操作:

  • 使用 LLMGraphTransformer 从非结构化文本 Blob 创建图表。
  • 使用 SpannerGraphStore 类将图表存储在 Spanner Graph 中。
  • 初始化 SpannerGraphQAChain 实例。
  • 使用 Spanner Graph 中的图存储区生成自然语言问题的回答。