在本文中,我们将探索如何使用Google Cloud SQL来管理和操作存储在MySQL数据库中的Langchain文档。Cloud SQL是一项完全托管的关系数据库服务,提供高性能、无缝集成和令人印象深刻的可扩展性。借助Langchain的集成,您可以为数据库应用程序扩展功能,构建AI支持的用户体验。
技术背景介绍
Google Cloud SQL支持MySQL、PostgreSQL和SQL Server数据库引擎。通过将您的数据库应用程序扩展到支持Langchain集成,您可以通过简单的API调用来存储、加载和删除文档数据,从而构建智能应用。
核心原理解析
Langchain的MySQLLoader和MySQLDocumentSaver类分别用于从MySQL表加载和保存文档。为了使这些操作顺利进行,我们需要先配置一个连接池来连接到Cloud SQL数据库。
代码实现演示
环境准备
# 首先安装必要的库
%pip install -upgrade --quiet langchain-google-cloud-sql-mysql
配置连接池
from langchain_google_cloud_sql_mysql import MySQLEngine
# 配置MySQL连接引擎
engine = MySQLEngine.from_instance(
project_id='my-project-id',
region='us-central1',
instance='test-instance',
database='test'
)
初始化数据库表
# 初始化一个表以存储文档
engine.init_document_table('test-default', overwrite_existing=True)
保存文档
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='test-default')
saver.add_documents(test_docs)
加载文档
from langchain_google_cloud_sql_mysql import MySQLLoader
loader = MySQLLoader(engine=engine, table_name='test-default')
docs = loader.lazy_load()
for doc in docs:
print("Loaded document:", doc)
删除文档
onedoc = next(loader.lazy_load())
saver.delete([onedoc])
# 确认删除
docs = list(loader.lazy_load())
print("Documents after deletion:", docs)
应用场景分析
这种集成非常适合需要在大规模数据场景下进行AI推断和分析的应用程序。例如,电商平台可以通过此方式管理商品信息,并实时更新库存和价格。
实践建议
- 确保在Google Cloud Console中启用Cloud SQL Admin API。
- 使用IAM数据库身份验证来管理用户访问,而不是依赖传统的用户名密码组合。
- 结合实际业务需求,自定义文档的page_content和metadata字段以优化数据管理。
如果遇到问题欢迎在评论区交流。
—END—
333



被折叠的 条评论
为什么被折叠?



