掌握Cloud SQL for MySQL:与Langchain集成实现AI驱动的数据库管理
引言
Google Cloud SQL提供了一种完全托管的关系数据库服务,支持MySQL、PostgreSQL和SQL Server等数据库引擎。通过Langchain的集成,开发者可以将数据库应用程序扩展到AI驱动的体验中。本篇文章将带您深入了解如何使用Cloud SQL for MySQL进行Langchain文档的保存、加载和删除操作。
主要内容
启动前准备
- 创建Google Cloud项目。
- 启用Cloud SQL Admin API。
- 创建Cloud SQL for MySQL实例及数据库。
- 为数据库添加IAM用户(可选)。
- 确认您在运行环境中的数据库访问权限。
# 请填写Google Cloud地区和Cloud SQL实例名称
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" # 请填入项目ID
!gcloud config set project {PROJECT_ID}
认证身份
在使用Colab时进行用户认证:
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
)
初始化表
engine.init_document_table(TABLE_NAME, 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}),
# 其他文档...
]
saver = MySQLDocumentSaver(engine=engine, table_name=TABLE_NAME)
saver.add_documents(test_docs)
加载文档
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)
可以根据SQL查询加载文档:
loader = MySQLLoader(engine=engine, query=f"SELECT * FROM `{TABLE_NAME}` WHERE JSON_EXTRACT(langchain_metadata, '$.fruit_id') = 1;")
onedoc = loader.load()
删除文档
loader = MySQLLoader(engine=engine, table_name=TABLE_NAME)
docs = loader.load()
saver.delete(onedoc)
print("Documents after delete:", loader.load())
常见问题和解决方案
如何解决网络访问限制问题?
由于某些地区的网络限制,开发者可以考虑使用API代理服务来提高访问稳定性。
如何处理自定义的文档结构?
使用MySQLLoader和MySQLDocumentSaver时,可以自定义content和metadata字段以适应不同的表结构。配置content_columns和metadata_columns以定制文档的加载和保存。
总结和进一步学习资源
Google Cloud SQL for MySQL与Langchain的结合为开发者提供了强大的AI驱动数据库解决方案。通过掌握这些技巧,您可以更好地管理和操控数据库数据。
进一步学习资源
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---