Elasticsearch
Elasticsearch 是一个分布式、RESTful 的搜索和分析引擎,能够同时执行向量搜索和词汇搜索。它构建在 Apache Lucene 库之上。
本笔记本展示了如何将聊天消息历史功能与 Elasticsearch 一同使用。
设置 Elasticsearch
设置 Elasticsearch 实例主要有两种方式:
-
Elastic Cloud。 Elastic Cloud 是一项托管式 Elasticsearch 服务。在此进行 免费试用 注册。
-
本地 Elasticsearch 安装。 通过本地运行来开始使用 Elasticsearch。最简单的方法是使用官方的 Elasticsearch Docker镜像。有关更多信息,请参阅 Elasticsearch Docker 文档。
安装依赖项
%pip install --upgrade --quiet elasticsearch langchain langchain-community
Authentication
如何获取默认的“elastic”用户的密码
要获取 Elastic Cloud 默认的“elastic”用户的密码:
- 登录 Elastic Cloud 控制台
- 前往“Security” > “Users”
- 找到“elastic”用户并点击“Edit”
- 点击“Reset password”
- 按照提示重置密码
使用用户名/密码
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 密钥:
- 登录 Elastic Cloud 控制台
- 打开
Kibana并前往 Stack Management > API Keys - 点击“Create API key”
- 为 API 密钥输入一个名称并点击“Create”
使用 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"
)
API Reference:ElasticsearchChatMessageHistory
使用聊天消息历史记录
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