跳到主要内容
这将帮助您开始使用 Elasticsearch 键值存储。有关所有 ElasticsearchEmbeddingsCache 功能和配置的详细文档,请参阅 API 参考

概览

ElasticsearchEmbeddingsCache 是一个 ByteStore 实现,它使用您的 Elasticsearch 实例来高效存储和检索嵌入。

集成详情

类别本地JS 支持下载量版本
ElasticsearchEmbeddingsCachelangchain-elasticsearchPyPI - DownloadsPyPI - Version

设置

要创建 ElasticsearchEmbeddingsCache 字节存储,您需要一个 Elasticsearch 集群。您可以在本地设置一个或创建一个 Elastic 账户

安装

LangChain ElasticsearchEmbeddingsCache 集成位于 langchain-elasticsearch 包中
pip install -qU langchain-elasticsearch

实例化

现在我们可以实例化我们的字节存储。
from langchain_elasticsearch import ElasticsearchEmbeddingsCache

# Example config for a locally running Elasticsearch instance
kv_store = ElasticsearchEmbeddingsCache(
    es_url="https://: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 参考:python.langchain.com/api_reference/elasticsearch/cache/langchain_elasticsearch.cache.ElasticsearchEmbeddingsCache.html
以编程方式连接这些文档到 Claude、VSCode 等,通过 MCP 获取实时答案。
© . This site is unofficial and not affiliated with LangChain, Inc.