Skip to main content
Open In ColabOpen on GitHub

Elasticsearch

Elasticsearch is a distributed, RESTful search and analytics engine, capable of performing both vector and lexical search. It is built on top of the Apache Lucene library.

此笔记本展示了如何使用聊天消息历史记录功能与 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 并转到堆栈管理 > 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