使用 Google Cloud SQL 管理 SQL Server 数据库并进行 Langchain 文档操作

技术背景介绍

Google Cloud SQL 是一种完全托管的关系型数据库服务,提供高性能、无缝集成和令人印象深刻的可扩展性。它支持 MySQL、PostgreSQL 和 SQL Server 数据库引擎。你可以将数据库应用扩展到构建 AI 驱动的体验,借助 Cloud SQL 的 Langchain 集成。本篇文章将介绍如何使用 Cloud SQL for SQL Server 保存、加载和删除 Langchain 文档。

核心原理解析

Cloud SQL 提供了一个完全托管的 SQL Server 实例,你可以在其上运行自己的数据库操作。通过 langchain-google-cloud-sql-mssql 包,我们能够与 SQL Server 数据库进行交互以保存、加载和删除 Langchain 文档。

代码实现演示

前置准备工作

运行本代码前,需要进行以下准备工作:

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

确认已在运行环境中获得数据库的访问权限,然后填写以下参数并运行。

# @markdown 请填写 Google Cloud 区域和 Cloud SQL 实例名称。
REGION = "us-central1"  # @param {type:"string"}
INSTANCE = "test-instance"  # @param {type:"string"}

# @markdown 请填写 Cloud SQL 实例的用户名和密码。
DB_USER = "sqlserver"  # @param {type:"string"}
DB_PASS = "password"  # @param {type:"string"}

# @markdown 请指定一个数据库和一个用于演示的表。
DATABASE = "test"  # @param {type:"string"}
TABLE_NAME = "test-default"  # @param {type:"string"}

库安装

首先,安装 langchain-google-cloud-sql-mssql 包。

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

认证

使用 Google Cloud IAM 用户进行认证以访问你的 Google Cloud 项目,如果你在 Colab 环境下运行,请使用以下代码进行认证:

from google.colab import auth

auth.authenticate_user()

设置 Google Cloud 项目

设置你的 Google Cloud 项目以便在本笔记本中使用资源。

PROJECT_ID = "my-project-id"  # @param {type:"string"}

# 设置项目 ID
!gcloud config set project {PROJECT_ID}

启用 API

启用 Cloud SQL Admin API 以便使用 langchain-google-cloud-sql-mssql 包。

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

基本使用

MSSQLEngine 连接池

配置一个到 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,
)
初始化表

初始化一个带有默认结构的表,表包含以下列:

  • page_content (类型: text)
  • langchain_metadata (类型: JSON)
engine.init_document_table(TABLE_NAME, overwrite_existing=True)
保存文档

使用 MSSQLDocumentSaver 保存 Langchain 文档。

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)
加载文档

使用 MSSQLLoader 加载 Langchain 文档。

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)
查询加载文档

通过 SQL 查询生成视图加载文档。

loader = MSSQLLoader(
    engine=engine,
    query=f"select * from \"{TABLE_NAME}\" where JSON_VALUE(langchain_metadata, '$.fruit_id') = 1;",
)
onedoc = loader.load()
print(onedoc)
删除文档

使用 MSSQLDocumentSaver 从表中删除文档。

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

应用场景分析

Cloud SQL 中的 SQL Server 与 Langchain 的集成,使得我们能够轻松地管理 AI 驱动的文档操作。你可以将这项技术应用于各种场景,例如客户服务自动化、内容管理系统和数据分析平台。

实践建议

  1. 配置稳定的连接池以确保数据库操作的高效和可靠性。
  2. 避免在生产环境中使用测试凭证,应使用适当的安全措施保护数据库的访问。
  3. 定期备份数据库以防止数据丢失。

如果遇到问题欢迎在评论区交流。

—END—

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值