高效管理你的AI数据:Google Cloud SQL for MySQL 全解析

69 阅读2分钟

引言

在现代应用开发中,AI和大数据的结合正变得越来越普遍。Google Cloud SQL 提供了一种完全托管的关系数据库服务,支持MySQL、PostgreSQL和SQL Server等数据库引擎。在本文中,我们将深入探讨如何使用 Google Cloud SQL for MySQL 来存储向量嵌入,借助LangChain集成扩展数据库应用,实现更智能的AI驱动体验。

主要内容

配置开始之前

在你开始之前,请确保完成以下步骤:

  1. 创建一个 Google Cloud 项目。
  2. 启用 Cloud SQL Admin API。
  3. 创建一个 Cloud SQL 实例(版本必须 >= 8.0.36,并配置 cloudsql_vectordatabase 标志为 "On")。
  4. 创建 Cloud SQL 数据库。
  5. 为数据库添加用户。

安装依赖库

首先,我们需要安装 langchain-google-cloud-sql-mysqllangchain-google-vertexai 库:

%pip install --upgrade --quiet langchain-google-cloud-sql-mysql langchain-google-vertexai

认证和项目设置

认证

你需要以 IAM 用户身份对 Google Cloud 进行身份验证。在 Colab 中运行以下代码:

from google.colab import auth
auth.authenticate_user()

设置 Google Cloud 项目

PROJECT_ID = "your-project-id"  # 请输入你的项目ID

!gcloud config set project {PROJECT_ID}

基本使用

设置 Cloud SQL 数据库值

请在 Cloud SQL 实例页面查找你的数据库值:

REGION = "us-central1"  # 地区
INSTANCE = "my-mysql-instance"  # 实例名称
DATABASE = "my-database"  # 数据库名称
TABLE_NAME = "vector_store"  # 表名称

创建 MySQLEngine

from langchain_google_cloud_sql_mysql import MySQLEngine

engine = MySQLEngine.from_instance(
    project_id=PROJECT_ID, region=REGION, instance=INSTANCE, database=DATABASE
)

初始化表

engine.init_vectorstore_table(
    table_name=TABLE_NAME,
    vector_size=768  # 向量大小
)

创建嵌入类实例

from langchain_google_vertexai import VertexAIEmbeddings

embedding = VertexAIEmbeddings(
    model_name="textembedding-gecko@latest", project=PROJECT_ID
)

初始化 MySQLVectorStore

from langchain_google_cloud_sql_mysql import MySQLVectorStore

store = MySQLVectorStore(
    engine=engine,
    embedding_service=embedding,
    table_name=TABLE_NAME,
)

添加文本

import uuid

all_texts = ["Apples and oranges", "Cars and airplanes", "Pineapple", "Train", "Banana"]
metadatas = [{"len": len(t)} for t in all_texts]
ids = [str(uuid.uuid4()) for _ in all_texts]

store.add_texts(all_texts, metadatas=metadatas, ids=ids)

代码示例

以下是一个完整的示例,展示如何使用API代理服务提高访问稳定性:

# 使用API代理服务提高访问稳定性
engine = MySQLEngine.from_instance(
    project_id=PROJECT_ID, region=REGION, instance=INSTANCE, database=DATABASE
)

常见问题和解决方案

  • 问题:无法连接到数据库

    • 解决方案:检查你的数据库配置是否正确,确保实例和项目ID匹配。
  • 问题:向量搜索性能低

    • 解决方案:应用向量索引来加速查询。

总结和进一步学习资源

Google Cloud SQL for MySQL 为现代AI应用提供了一个强大的基础。通过结合LangChain和其他工具,你可以轻松管理和扩展你的数据能力。有关更详细的指南,请参阅以下资源:

参考资料

  1. Google Cloud SQL
  2. LangChain Documentation

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

---END---