ElasticsearchEmbeddingsCache
這將幫助您開始使用 Elasticsearch 鍵值儲存庫。 有關所有 ElasticsearchEmbeddingsCache
功能和配置的詳細文件,請前往 API 參考。
概觀
ElasticsearchEmbeddingsCache
是一個 ByteStore
實作,它使用您的 Elasticsearch 實例來有效率地儲存和檢索嵌入。
整合詳細資訊
類別 | 套件 | 本機 | JS 支援 | 套件下載 | 套件最新版本 |
---|---|---|---|---|---|
ElasticsearchEmbeddingsCache | langchain_elasticsearch | ✅ | ❌ |
設定
若要建立 ElasticsearchEmbeddingsCache
位元組儲存庫,您需要 Elasticsearch 叢集。 您可以在本機設定一個,或建立一個 Elastic 帳戶。
安裝
LangChain ElasticsearchEmbeddingsCache
整合位於 __package_name__
套件中
%pip install -qU langchain_elasticsearch
實例化
現在我們可以實例化我們的位元組儲存庫
from langchain_elasticsearch import ElasticsearchEmbeddingsCache
# Example config for a locally running Elasticsearch instance
kv_store = ElasticsearchEmbeddingsCache(
es_url="https://127.0.0.1:9200",
index_name="llm-chat-cache",
metadata={"project": "my_chatgpt_project"},
namespace="my_chatgpt_project",
es_user="elastic",
es_password="<GENERATED PASSWORD>",
es_params={
"ca_certs": "~/http_ca.crt",
},
)
用法
您可以使用 mset
方法,像這樣在金鑰下設定資料
kv_store.mset(
[
["key1", b"value1"],
["key2", b"value2"],
]
)
kv_store.mget(
[
"key1",
"key2",
]
)
[b'value1', b'value2']
您可以使用 mdelete
方法刪除資料
kv_store.mdelete(
[
"key1",
"key2",
]
)
kv_store.mget(
[
"key1",
"key2",
]
)
[None, None]
用作嵌入快取
與其他 ByteStores
一樣,您可以將 ElasticsearchEmbeddingsCache
實例用於 文件擷取中的持久快取,以用於 RAG。
但是,依預設快取的向量將無法搜尋。 開發人員可以自訂 Elasticsearch 文件的建置,以便新增索引向量欄位。
這可以透過子類別化和覆寫方法來完成
from typing import Any, Dict, List
class SearchableElasticsearchStore(ElasticsearchEmbeddingsCache):
@property
def mapping(self) -> Dict[str, Any]:
mapping = super().mapping
mapping["mappings"]["properties"]["vector"] = {
"type": "dense_vector",
"dims": 1536,
"index": True,
"similarity": "dot_product",
}
return mapping
def build_document(self, llm_input: str, vector: List[float]) -> Dict[str, Any]:
body = super().build_document(llm_input, vector)
body["vector"] = vector
return body
覆寫對應和文件建置時,請僅進行添加修改,保持基本對應完整。
API 參考
有關所有 ElasticsearchEmbeddingsCache
功能和配置的詳細文件,請前往 API 參考:https://langchain-python.dev.org.tw/api_reference/elasticsearch/cache/langchain_elasticsearch.cache.ElasticsearchEmbeddingsCache.html
相關內容
- 鍵值儲存庫概念指南