使用 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 的 Chat 消息记录

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

Spanner 使用 SpannerChatMessageHistory 扩展了此类。

Chat 消息记录步骤指南

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

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