Skip to main content
Cloud SQL 是一个完全托管的关系型数据库服务,提供高性能、无缝集成和显著的扩展性。它支持 PostgreSQL、MySQL 和 SQL Server 数据库引擎。利用 Cloud SQL 的 LangChain 集成扩展您的数据库应用以构建 AI 驱动的体验。
此笔记本将介绍如何使用 Cloud SQL for MySQL 通过 MySQLVectorStore 类存储向量嵌入。 更多关于此包的信息请参考 GitHub。 Open In Colab

开始前

运行此笔记本前需要完成以下步骤:

🦜🔗 Library installation

安装集成库 langchain-google-cloud-sql-mysql 和嵌入服务库 langchain-google-vertexai。
Colab 仅用: 解除以下单元格注释以重启内核或使用重启按钮。对于 Gemini 企业代理平台工作台,可通过顶部按钮重启终端。

🔐 Authentication

使用当前笔记本中已登录的 IAM 用户身份对 Google Cloud 进行身份验证以访问您的项目。

☁ 设置 Google 云项目

将此笔记本的 Google Cloud 项目设置为可访问云资源。 若不知道项目 ID,请执行以下操作:
  • 运行 gcloud config list。
  • 运行 gcloud projects list。
  • 查看支持页面:查找项目 ID。

基本用法

设置云 SQL 数据库值

在 Cloud SQL 实例页面 中查找数据库值。 注意: 仅 MySQL 实例版本 8.0.36 或更高支持向量功能。 对于现有实例,可能需要执行 自助维护更新 以更新维护版本至 MYSQL_8_0_36.R20240401.03_00 或更高。更新后,需 配置数据库标志 将 cloudsql_vector 标志设为 “On”。

MySQLEngine 连接池

在将 Cloud SQL 配置为向量存储时,需要 MySQLEngine 对象。 MySQLEngine 用于配置连接池以支持应用程序连接并遵循最佳实践。 使用 MySQLEngine.from_instance() 创建 MySQLEngine 需提供以下四项信息:
  1. project_id : Google Cloud 项目 ID(Cloud SQL 实例所在项目)
  2. region : Cloud SQL 实例所在区域
  3. instance : Cloud SQL 实例名称
  4. database : 要连接的 Cloud SQL 数据库名称
默认使用 IAM 数据库身份验证 作为认证方式。本库使用来自环境的 应用默认凭据 (ADC) 的 IAM 主体的身份。 更多 IAM 数据库身份验证信息请参考: 也可选择 内置数据库身份验证(使用用户名/密码访问 Cloud SQL)。只需提供可选 user 和 password 参数给 MySQLEngine.from_instance():
  • user : 用于内置认证的数据库用户名
  • password : 用于内置认证的数据库密码

初始化表

MySQLVectorStore 类需要数据库表。MySQLEngine 类提供 init_vectorstore_table() 方法可创建符合要求的表结构。

创建嵌入类实例

您可以使用任何 LangChain 嵌入模型。
若需使用 VertexAIEmbeddings,需启用 Gemini 企业代理平台 API。
建议在生产环境中固定嵌入模型版本,更多详情请参考 文本嵌入模型。

初始化默认 MySQLVectorStore

创建 MySQLVectorStore 类实例需提供以下三项:
  1. engine : MySQLEngine 引擎实例
  2. embedding_service : LangChain 嵌入模型实例
  3. table_name : 要作为向量存储的 Cloud SQL 数据库表名

添加文本

删除文本

通过 ID 删除向量存储中的向量。

搜索文档

搜索文档(基于向量)

可通过 similarity_search_by_vector 接受嵌入向量参数进行文档相似度搜索。

添加索引

通过应用向量索引加速搜索查询。更多详情请参考 MySQL 向量索引。 注意: 对于 IAM 数据库身份验证(默认使用),需由特权数据库用户为 IAM 用户授予以下权限以实现向量索引完整控制:

移除索引

高级用法

使用自定义元数据的 MySQLVectorStore

向量存储可利用关系数据对相似度搜索进行过滤。 创建包含自定义元数据列的表和 MySQLVectorStore 实例。

带元数据过滤的文档搜索

在处理文档前可先通过元数据缩小范围。 例如,使用 filter 参数对文档进行过滤。

官方原文:src/oss/python/integrations/vectorstores/google_cloud_sql_mysql.mdx · 非官方翻译,译文由 AI 生成,以英文原文为准。
Last modified on November 3, 2026