跳到主要内容
Open In ColabOpen on GitHub

Elasticsearch

Elasticsearch 是一个分布式、RESTful 的搜索和分析引擎,能够执行向量和词汇搜索。它构建于 Apache Lucene 库之上。

本笔记本展示了如何将聊天消息历史记录功能与 Elasticsearch 一起使用。

设置 Elasticsearch

设置 Elasticsearch 实例主要有两种方法

  1. Elastic Cloud。 Elastic Cloud 是一项托管的 Elasticsearch 服务。注册 免费试用

  2. 本地 Elasticsearch 安装。 通过在本地运行 Elasticsearch 开始使用。最简单的方法是使用官方的 Elasticsearch Docker 镜像。有关更多信息,请参阅 Elasticsearch Docker 文档

安装依赖项

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

身份验证

如何获取默认 “elastic” 用户的密码

要获取默认 “elastic” 用户的 Elastic Cloud 密码,请执行以下操作

  1. 登录到 Elastic Cloud 控制台
  2. 转到 “安全” > “用户”
  3. 找到 “elastic” 用户,然后单击 “编辑”
  4. 单击 “重置密码”
  5. 按照提示重置密码

使用用户名/密码

es_username = os.environ.get("ES_USERNAME", "elastic")
es_password = os.environ.get("ES_PASSWORD", "change me...")

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

如何获取 API 密钥

要获取 API 密钥,请执行以下操作

  1. 登录到 Elastic Cloud 控制台
  2. 打开 Kibana 并转到 Stack Management > API 密钥
  3. 单击 “创建 API 密钥”
  4. 输入 API 密钥的名称,然后单击 “创建”

使用 API 密钥

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

history = ElasticsearchChatMessageHistory(
es_api_key=es_api_key,
index="test-history",
session_id="test-session"
)

初始化 Elasticsearch 客户端和聊天消息历史记录

import os

from langchain_community.chat_message_histories import (
ElasticsearchChatMessageHistory,
)

es_url = os.environ.get("ES_URL", "http://localhost:9200")

# If using Elastic Cloud:
# es_cloud_id = os.environ.get("ES_CLOUD_ID")

# Note: see Authentication section for various authentication methods

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

使用聊天消息历史记录

history.add_user_message("hi!")
history.add_ai_message("whats up?")
indexing message content='hi!' additional_kwargs={} example=False
indexing message content='whats up?' additional_kwargs={} example=False

此页是否对您有帮助?