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
身份驗證
如何取得預設「elastic」使用者的密碼
若要取得預設「elastic」使用者的 Elastic Cloud 密碼
- 登入 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
並前往 Stack Management > 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", "https://127.0.0.1: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