本页面介绍了如何使用 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 工作流如下所示:
- Graph QA 使用 LangChain LLM 将自然语言问题转换为 GQL 查询。
- Spanner Graph 使用图存储接口运行 GQL 查询。
- GQL 查询结果会发送回 LLM。
- LLM 会生成并返回问题的答案。
图表质量检查流程指南
图表 QA 专用 Spanner 指南演示了如何使用 Spanner 和图表 QA 回答问题,具体方法是介绍如何执行以下操作:
- 使用
LLMGraphTransformer
从非结构化文本 Blob 创建图表。 - 使用
SpannerGraphStore
类将图表存储在 Spanner Graph 中。 - 初始化
SpannerGraphQAChain
实例。 - 使用 Spanner Graph 中的图存储区生成自然语言问题的回答。