技术背景介绍
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 文档。
代码实现演示
前置准备工作
运行本代码前,需要进行以下准备工作:
- 创建一个 Google Cloud 项目
- 启用 Cloud SQL Admin API
- 创建一个 Cloud SQL 的 SQL Server 实例
- 创建一个 Cloud SQL 数据库
- 为数据库添加一个 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 驱动的文档操作。你可以将这项技术应用于各种场景,例如客户服务自动化、内容管理系统和数据分析平台。
实践建议
- 配置稳定的连接池以确保数据库操作的高效和可靠性。
- 避免在生产环境中使用测试凭证,应使用适当的安全措施保护数据库的访问。
- 定期备份数据库以防止数据丢失。
如果遇到问题欢迎在评论区交流。
—END—
463

被折叠的 条评论
为什么被折叠?



