Source code for langchain_community.vectorstores.docarray.in_memory

"""封装了内存存储。"""
from __future__ import annotations

from typing import Any, Dict, List, Literal, Optional

from langchain_core.embeddings import Embeddings

from langchain_community.vectorstores.docarray.base import (
    DocArrayIndex,
    _check_docarray_import,
)


[docs]class DocArrayInMemorySearch(DocArrayIndex): """内存中的`DocArray`存储用于精确搜索。 要使用它,您应该安装版本>=0.32.0的``docarray``包。 您可以使用`pip install "langchain[docarray]"`进行安装。"""
[docs] @classmethod def from_params( cls, embedding: Embeddings, metric: Literal[ "cosine_sim", "euclidian_dist", "sgeuclidean_dist" ] = "cosine_sim", **kwargs: Any, ) -> DocArrayInMemorySearch: """初始化DocArrayInMemorySearch存储。 参数: embedding(Embeddings):嵌入函数。 metric(str):用于精确最近邻搜索的度量标准。 可以是以下之一:"cosine_sim"、"euclidean_dist"和"sqeuclidean_dist"。 默认为"cosine_sim"。 **kwargs:要传递给get_doc_cls方法的其他关键字参数。 """ _check_docarray_import() from docarray.index import InMemoryExactNNIndex doc_cls = cls._get_doc_cls(space=metric, **kwargs) doc_index = InMemoryExactNNIndex[doc_cls]() # type: ignore return cls(doc_index, embedding)
[docs] @classmethod def from_texts( cls, texts: List[str], embedding: Embeddings, metadatas: Optional[List[Dict[Any, Any]]] = None, **kwargs: Any, ) -> DocArrayInMemorySearch: """创建一个DocArrayInMemorySearch存储并插入数据。 参数: texts (List[str]): 文本数据。 embedding (Embeddings): 嵌入函数。 metadatas (Optional[List[Dict[Any, Any]]]): 每个文本的元数据(如果存在)。 默认为None。 metric (str): 精确最近邻搜索的度量标准。 可以是以下之一: "cosine_sim", "euclidean_dist" 和 "sqeuclidean_dist"。 默认为"cosine_sim"。 返回: DocArrayInMemorySearch向量存储。 """ store = cls.from_params(embedding, **kwargs) store.add_texts(texts=texts, metadatas=metadatas) return store