Google Cloud SQL for MySQL 应用于聊天消息历史存储

技术背景介绍

在现代应用中,聊天机器人变得越来越普遍。其中一个关键需求是能够有效地存储和管理聊天历史,以便在当前会话中提供上下文。Google Cloud SQL 为 MySQL 提供了一种高性能、无缝集成且具有良好可伸缩性的托管数据库服务。通过结合 Langchain 与 Cloud SQL,可以轻松实现 AI 驱动的聊天体验。

核心原理解析

Cloud SQL 是一种完全托管的关系数据库服务,支持 MySQL、PostgreSQL 和 SQL Server 数据库引擎。利用 Cloud SQL,开发者可以将数据库应用扩展到 AI 驱动的体验中。在这里,我们使用 MySQLChatMessageHistory 类在 Google Cloud SQL for MySQL 上存储聊天消息历史。

代码实现演示

配置前置条件

在继续之前,请确保您已完成以下设置:

  1. 创建一个 Google Cloud 项目。
  2. 启用 Cloud SQL Admin API。
  3. 创建 Cloud SQL for MySQL 实例和数据库。
  4. 添加 IAM 数据库用户(可选)。

安装必要的库

首先,确保安装 langchain-google-cloud-sql-mysql 包,这个包包含了与 Google Cloud SQL 的集成功能。

%pip install --upgrade --quiet langchain-google-cloud-sql-mysql langchain-google-vertexai

认证和项目设置

使用 Google Colab 进行认证,并设置您的 Google Cloud 项目 ID。

from google.colab import auth

auth.authenticate_user()

PROJECT_ID = "my-project-id"  # @param {type:"string"}

# 设置项目 ID
!gcloud config set project {PROJECT_ID}

启用必要的 API

确保启用 Cloud SQL Admin API。

# 启用 Cloud SQL Admin API
!gcloud services enable sqladmin.googleapis.com

初始化 MySQL 引擎和表

创建 MySQLEngine 实例和初始化聊天历史表。

from langchain_google_cloud_sql_mysql import MySQLEngine

REGION = "us-central1"
INSTANCE = "my-mysql-instance"
DATABASE = "my-database"
TABLE_NAME = "message_store"

engine = MySQLEngine.from_instance(
    project_id=PROJECT_ID, region=REGION, instance=INSTANCE, database=DATABASE
)

# 初始化聊天历史表
engine.init_chat_history_table(table_name=TABLE_NAME)

存储和检索聊天消息

使用 MySQLChatMessageHistory 类存储和检索聊天消息。

from langchain_google_cloud_sql_mysql import MySQLChatMessageHistory

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

print(history.messages)

清理会话

当一个会话历史不再需要时,可以清除它。

# 清除历史
history.clear()

应用场景分析

这种配置适用于需要持久化和管理大量聊天历史记录的应用,如客服机器人、在线辅导等。通过存储聊天历史,AI 模型可以提供更具上下文感知的响应。

实践建议

  • 确保数据库访问权限的安全性,尤其是在生产环境中。
  • 定期备份聊天历史,以防数据丢失。
  • 可通过优化数据库连接池和使用指数退避策略来提高应用的性能和可靠性。

如果遇到问题欢迎在评论区交流。
—END—

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值