使用 LangChain 构建依托 LLM 的应用

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

什么是 LangChain?

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

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

适用于 Cloud SQL for PostgreSQL 的 LangChain 组件

Cloud SQL for PostgreSQL 提供以下 LangChain 接口:

如需了解如何使用 LangChain,请参阅适用于 Cloud SQL for PostgreSQL 的 LangChain 快速入门

Cloud SQL for PostgreSQL 的矢量存储区

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

如需使用 Cloud SQL for PostgreSQL 中的矢量存储区,请使用 PostgresVectorStore 类。

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

矢量存储区过程指南

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

  • 安装集成软件包和 LangChain
  • 创建 PostgresEngine 对象并配置与 Cloud SQL for PostgreSQL 数据库的连接池
  • 初始化表
  • 使用 VertexAIEmbeddings 创建嵌入对象
  • 初始化默认 PostgresVectorStore
  • 添加文本
  • 删除文本
  • 搜索文档
  • 按矢量搜索文档
  • 添加索引以加快矢量搜索查询速度
  • 重新编入索引
  • 移除索引
  • 创建自定义矢量存储区
  • 使用元数据过滤条件搜索文档

Cloud SQL for PostgreSQL 的文档加载器

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

如需从 Cloud SQL for PostgreSQL 中的文档加载器加载文档,请使用 PostgresLoader 类。PostgresLoader 从表中返回文档列表,第一列用于网页内容,所有其他列用于元数据。默认表的第一列是页面内容,第二列是 JSON 元数据。每一行都是一个文档。请使用 PostgresDocumentSaver 类来保存和删除文档。

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

文档加载器过程指南

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

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

Cloud SQL for PostgreSQL 的聊天消息记录

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

Cloud SQL for PostgreSQL 使用 PostgresChatMessageHistory 扩展此类。

聊天消息记录过程指南

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

  • 安装 LangChain 并向 Google Cloud进行身份验证
  • 创建 PostgresEngine 对象并配置与 Cloud SQL for PostgreSQL 数据库的连接池
  • 初始化表
  • 初始化 PostgresChatMessageHistory 类以添加和删除消息
  • 使用 LangChain 表达式语言 (LCEL) 和 Google 的 Vertex AI 聊天模型创建消息记录链

后续步骤