本页介绍如何使用 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
会话