探索 Google Cloud SQL for SQL Server:构建强大的数据库和 Langchain 集成

58 阅读2分钟

引言

在现代应用程序开发中,处理和管理数据是至关重要的。Google Cloud SQL 提供了一种高效且可扩展的方式来管理数据库。本篇文章将深入探讨如何使用 Google Cloud SQL for SQL Server 来存储、加载和删除 Langchain 文档,帮助您构建 AI 驱动的应用程序。

主要内容

初步设置

要开始使用 Google Cloud SQL for SQL Server,我们需要进行一些初步设置。这包括创建 Google Cloud 项目、启用 Cloud SQL Admin API、创建 SQL Server 实例和数据库,最后创建 IAM 数据库用户。

环境配置

确保在运行环境中填入以下值:

# 请填写您的 Google Cloud 区域和 Cloud SQL 实例名称
REGION = "us-central1"  
INSTANCE = "test-instance"  

# 请填写 Cloud SQL 实例的用户名和密码
DB_USER = "sqlserver"  
DB_PASS = "password"  

# 指定数据库和表名称用于演示
DATABASE = "test"  
TABLE_NAME = "test-default"  

安装必要库

我们需要安装 langchain-google-cloud-sql-mssql 包来实现与 Langchain 的集成:

%pip install --upgrade --quiet langchain-google-cloud-sql-mssql

认证和项目设置

确保已通过 Google Cloud 认证,以便我们可以访问项目资源:

from google.colab import auth

auth.authenticate_user()

# 设置 Google Cloud 项目
PROJECT_ID = "my-project-id"
!gcloud config set project {PROJECT_ID}

# 启用 Cloud SQL Admin API
!gcloud services enable sqladmin.googleapis.com

代码示例

创建 MSSQL 引擎

首先,我们创建一个连接池,以便与 Cloud SQL 数据库进行交互:

from langchain_google_cloud_sql_mssql import MSSQLEngine

engine = MSSQLEngine.from_instance(
    project_id=PROJECT_ID,
    region=REGION,
    instance=INSTANCE,
    database=DATABASE,
    user=DB_USER,
    password=DB_PASS,
)

初始化表和保存文档

初始化表并保存文档:

engine.init_document_table(TABLE_NAME, overwrite_existing=True)

from langchain_core.documents import Document
from langchain_google_cloud_sql_mssql import MSSQLDocumentSaver

test_docs = [
    Document(page_content="Apple Granny Smith 150 0.99 1", metadata={"fruit_id": 1}),
    Document(page_content="Banana Cavendish 200 0.59 0", metadata={"fruit_id": 2}),
    Document(page_content="Orange Navel 80 1.29 1", metadata={"fruit_id": 3}),
]

saver = MSSQLDocumentSaver(engine=engine, table_name=TABLE_NAME)
saver.add_documents(test_docs)

加载和删除文档

加载并删除文档的示例:

from langchain_google_cloud_sql_mssql import MSSQLLoader

loader = MSSQLLoader(engine=engine, table_name=TABLE_NAME)
docs = loader.lazy_load()
for doc in docs:
    print("Loaded documents:", doc)

saver.delete(docs)
print("Documents after delete:", loader.load())

常见问题和解决方案

  • 连接问题:在某些地区,访问 Google Cloud API 可能会不稳定。建议使用 API 代理服务以提高访问的稳定性。
  • 身份验证错误:确保已正确配置 Google Cloud 项目和身份验证。

总结和进一步学习资源

Google Cloud SQL for SQL Server 提供了强大的数据管理和扩展能力,将其与 Langchain 集成可以显著提升数据驱动的应用程序开发效率。读者可以进一步参考以下资源:

参考资料

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

---END---