Cloud SQL 是一个完全托管的关系型数据库服务,提供高性能、无缝集成和显著的扩展性。它支持 PostgreSQL、MySQL 和 SQL Server 数据库引擎。利用 Cloud SQL 的 LangChain 集成扩展您的数据库应用以构建 AI 驱动的体验。此笔记本将介绍如何使用
Cloud SQL for MySQL 通过 MySQLVectorStore 类存储向量嵌入。
更多关于此包的信息请参考 GitHub。
开始前
运行此笔记本前需要完成以下步骤:- 创建 Google Cloud 项目
- 启用 Cloud SQL 管理 API.
- 创建 Cloud SQL 实例.(版本必须为 8.0.36 或更高,且需配置 cloudsql_vector 数据库标志为 “On”)
- 创建 Cloud SQL 数据库.
- 为数据库添加用户.
🦜🔗 Library installation
安装集成库langchain-google-cloud-sql-mysql 和嵌入服务库 langchain-google-vertexai。
🔐 Authentication
使用当前笔记本中已登录的 IAM 用户身份对 Google Cloud 进行身份验证以访问您的项目。- 若使用 Colab 运行笔记本,请使用下方单元格并继续。
- 若使用 Gemini 企业代理平台工作台,请参考 Gemini 企业代理平台工作台设置指南。
☁ 设置 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 需提供以下四项信息:
project_id: Google Cloud 项目 ID(Cloud SQL 实例所在项目)region: Cloud SQL 实例所在区域instance: Cloud SQL 实例名称database: 要连接的 Cloud SQL 数据库名称
user 和 password 参数给 MySQLEngine.from_instance():
user: 用于内置认证的数据库用户名password: 用于内置认证的数据库密码
初始化表
MySQLVectorStore 类需要数据库表。MySQLEngine 类提供 init_vectorstore_table() 方法可创建符合要求的表结构。
创建嵌入类实例
您可以使用任何 LangChain 嵌入模型。若需使用
VertexAIEmbeddings,需启用 Gemini 企业代理平台 API。
建议在生产环境中固定嵌入模型版本,更多详情请参考 文本嵌入模型。
初始化默认 MySQLVectorStore
创建MySQLVectorStore 类实例需提供以下三项:
engine:MySQLEngine引擎实例embedding_service: LangChain 嵌入模型实例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 生成,以英文原文为准。