使用 Cloud SQL 构建生成式 AI 应用

本页面简要介绍了 Cloud SQL for PostgreSQL 提供的功能,可帮助您构建生成式 AI 应用。如需开始使用示例应用,请参阅开始将 Cloud SQL 用于生成式 AI 应用

检索增强生成 (RAG) 是一种在生成回答之前通过引用权威知识库来优化大语言模型 (LLM) 输出的技术。RAG 通过提高生成式 AI 应用的准确性来增强其性能。如本页面所述,Cloud SQL 数据库提供为 RAG 和生成式 AI 应用精选的功能。

生成向量嵌入

向量嵌入对于 RAG 至关重要,因为它们可以实现语义理解和高效的相似度搜索。这些嵌入是文本、图片、音频和视频的数值表示法。嵌入模型会生成向量嵌入,因此如果两段内容在语义上相似,则它们的相应嵌入在嵌入向量空间中彼此接近。

Cloud SQL 与 Vertex AI 集成。您可以使用 Vertex AI 托管的模型,通过 SQL 查询生成向量嵌入。

Cloud SQL 通过嵌入函数扩展了 PostgreSQL 语法,以便生成文本向量嵌入。生成这些嵌入后,您可以将它们存储在 Cloud SQL 数据库中,而无需单独的向量数据库。

您还可以使用 Cloud SQL 来存储在 Cloud SQL 外部生成的向量嵌入。例如,您可以存储使用 Vertex AI Model Garden 中的预训练模型生成的向量嵌入。您可以将这些向量嵌入用作 pgvector 函数的输入,以进行相似度和语义搜索。

使用 pgvector 对向量嵌入进行存储、编入索引和查询

您可以使用 pgvector PostgreSQL 扩展程序在 Cloud SQL 中对向量嵌入进行存储、编入索引和查询。

如需详细了解如何配置此扩展程序,请参阅配置 PostgreSQL 扩展程序。如需详细了解如何对向量嵌入进行存储、编入索引和查询,请参阅存储生成的嵌入以及使用 pgvector 对嵌入进行查询和编入索引

使用 SQL 查询调用在线预测

您可以使用 Vertex AI Model Garden 中的模型,通过 SQL 查询调用在线预测

使用 LangChain 集成

Cloud SQL 与开源 LLM 编排框架 LangChain 集成,可简化生成式 AI 应用的开发。您可以使用以下 LangChain 软件包:

提高向量搜索性能

您可以使用以下方式提高向量搜索的性能:

  • 数据缓存:使用内置数据缓存,该缓存利用本地快速 SSD 来存储频繁读取的数据页面。与从永久性磁盘读取相比,读取性能可提升高达三倍。
  • 数据缓存指标:根据数据缓存在向量搜索中的使用效率优化查询。

    Cloud SQL 在 Cloud Monitoring 的 Metrics Explorer 中提供以下指标

    指标 说明 指标标签
    已使用的数据缓存 数据缓存用量(以字节为单位) database/data_cache/bytes_used
    数据缓存配额 数据缓存大小上限(以字节为单位) database/data_cache/quota
    数据缓存命中数 实例的数据缓存命中读取操作总次数 database/postgresql/data_cache/hit_count
    数据缓存未命中数 实例的数据缓存未命中读取操作的总次数 database/postgresql/data_cache/miss_count
    数据缓存命中率 实例的数据缓存命中读取操作与数据缓存未命中读取操作的比率
    database/postgresql/data_cache/hit_ratio
  • System Insights:提供 CPU 利用率、磁盘利用率和吞吐量等系统指标,以帮助您监控实例的健康状况并排查影响生成式 AI 应用性能的问题。如需查看这些指标,请使用 Cloud SQL System Insights 信息中心

  • Query Insights:检测、诊断和避免查询性能问题。这有助于提高生成式 AI 应用中向量搜索的性能。

    您可以使用 Cloud SQL Query Insights 信息中心观察热门查询的性能,并使用可视化查询计划分析这些查询。您还可以使用 SQLcommenter 监控应用级层的性能,并跟踪数据库的应用栈中有问题查询的来源。这是一个开源对象关系映射 (ORM) 自动插桩库。

    Query Insights 还可帮助您与现有的应用监控 (APM) 工具集成,以便您使用熟悉的工具排查查询问题。

将 Cloud SQL 用于生成式 AI 应用的优势

使用 Cloud SQL 构建生成式 AI 应用具有以下优势:

  • 使用 PostgreSQL 构建生成式 AI 应用。Cloud SQL for PostgreSQL 支持 pgvector,并与 Vertex AI 和 LangChain 集成。
  • 使用具有企业级数据保护、安全和治理的受信任服务。通过使用 Cloud SQL,您可以获得以下优势:
    • 高可用性服务等级协议 (SLA) 承诺的 99.99% 可用性,包含维护
    • 一种托管式服务,可为您提供自动备份、复制、修补、加密和存储空间容量自动增加等功能
    • 安全、治理和合规能力
  • 与情境运营数据相结合。在使用向量嵌入时,对运营数据使用联接和过滤,以便在生成式 AI 应用中获得情境相关、准确且最新的回答。
  • 减少运营重复劳动。使用 Cloud SQL 作为向量数据库,减少与将数据导出到单独的向量数据库相关的运营重复劳动。
  • 访问最新的生成式 AI 模型。使用 SQL 查询访问 Vertex AI 中托管的最新 AI 模型。

开始将 Cloud SQL 用于生成式 AI 应用

如需开始构建生成式 AI 应用,请使用此示例应用。该应用使用 Cloud SQL、Vertex AI 以及 Google Kubernetes Engine (GKE) 或 Cloud Run。您可以使用该应用构建一个基本聊天机器人 API,以便:

  • 将 GKE 或 Cloud Run 与 Cloud SQL、Vertex AI 和 pgvector 集成
  • 演示如何在 Virtual Private Cloud (VPC) 中使用 Private Service Connect 与 Cloud SQL 的连接
  • 使用 Terraform 配置基础设施
  • 将 Python 与 asyncpgFastAPI 搭配使用
  • 支持在单独的 Google Cloud 项目中设置 Cloud SQL 以及在 GKE 或 Cloud Run 上运行的应用

此解决方案包含以下内容:

  • 按照安全方面的最佳实践设置基础设施的 Terraform 模板
  • 由 LLM 提供支持的聊天机器人的示例应用,您可以部署到 GKE 或 Cloud Run

后续步骤