Elasticsearch
Elasticsearch 是一个分布式的、基于 REST 的搜索引擎和分析引擎,能够执行向量搜索和词法搜索。它是基于 Apache Lucene 库构建的。
本笔记本展示了如何使用 Elasticsearch 的聊天消息历史功能。
设置 Elasticsearch
有两大主要方式设置Elasticsearch实例:<br>
-
弹性云. 弹性云是一项托管的 Elasticsearch 服务。注册 免费试用。
-
本地Elasticsearch安装。 通过在本地运行Elasticsearch来开始使用。最简单的方法是使用官方的Elasticsearch Docker镜像。更多信息请参见Elasticsearch Docker文档。
安装依赖
%pip install --upgrade --quiet elasticsearch langchain langchain-community
身份验证
如何获取默认 \"elastic\" 用户的密码
要获取默认 "elastic" 用户的弹性云密码:
- 登录到 Elastic Cloud 控制台
- 去"安全" > "用户"
- 找到 "elastic" 用户并点击 "编辑"
- 点击“重置密码”
- 按照提示重置密码
使用用户名/密码
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并转到堆栈管理 > API 密钥 - 点击“创建 API 密钥”
- 请输入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"
)
API 参考:Elasticsearch聊天消息历史
使用聊天消息历史
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