ElasticsearchEmbeddingsCache
这将帮助您开始使用 Elasticsearch 键值存储。有关所有ElasticsearchEmbeddingsCache功能和配置可参考 API 参考。
概述
这ElasticsearchEmbeddingsCache是一个ByteStore使用 Elasticsearch 实例高效存储和检索嵌入的实现。
集成详细信息
| 类 | 包 | 本地化 | JS 支持 | 软件包下载 | 最新包装 |
|---|---|---|---|---|---|
| ElasticsearchEmbeddingsCache | langchain_elasticsearch | ✅ | ❌ |
设置
要创建ElasticsearchEmbeddingsCachebyte store 中,您需要一个 Elasticsearch 集群。您可以在本地设置一个帐户或创建一个 Elastic 帐户。
安装
The LangChainElasticsearchEmbeddingsCache集成位于__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://localhost: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",
},
)
API 参考:ElasticsearchEmbeddingsCache
用法
您可以使用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://python.langchain.com/api_reference/elasticsearch/cache/langchain_elasticsearch.cache.ElasticsearchEmbeddingsCache.html
相关
- 键值存储概念指南