langchain.embeddings.cache.CacheBackedEmbeddings

class langchain.embeddings.cache.CacheBackedEmbeddings(underlying_embeddings: Embeddings, document_embedding_store: BaseStore[str, List[float]], *, batch_size: Optional[int] = None, query_embedding_store: Optional[BaseStore[str, List[float]] = None)[source]

缓存嵌入模型结果的接口。

该接口允许与任何实现抽象存储接口的存储进行工作,该接口接受键为字符串类型、值为浮点数列表的对象。

如果需要,该接口可以扩展以接受其他值的序列化和反序列化实现,以及键编码器。

请注意,默认情况下仅缓存文档嵌入。要同时缓存查询嵌入,请将 query_embedding_store 传递给构造函数。

示例

初始化嵌入器。

参数
  • underlying_embeddings (Embeddings) – 用于计算嵌入的嵌入器。

  • document_embedding_store (BaseStore[str, List[float]]) – 用于缓存文档嵌入的存储。

  • batch_size (可选[int]) – 在存储更新之间嵌入的文档数。

  • query_embedding_store (可选[BaseStore[str, List[float]]]) – 用于缓存查询嵌入的存储。如果为 None,则不缓存查询嵌入。

方法

__init__(underlying_embeddings, ...[, ...])

初始化嵌入器。

aembed_documents(texts)

将一组文本嵌入。

aembed_query(text)

嵌入查询文本。

embed_documents(texts)

将一组文本嵌入。

embed_query(text)

嵌入查询文本。

from_bytes_store(underlying_embeddings, ...)

向存储中添加必要的序列化和编码的入口。

__init__(underlying_embeddings: Embeddings, document_embedding_store: BaseStore[str, List[float]], *, batch_size: Optional[int] = None, query_embedding_store: Optional[BaseStore[str, List[float]] = None) None[source]

初始化嵌入器。

参数
  • underlying_embeddings (Embeddings) – 用于计算嵌入的嵌入器。

  • document_embedding_store (BaseStore[str, List[float]]) – 用于缓存文档嵌入的存储。

  • batch_size (可选[int]) – 在存储更新之间嵌入的文档数。

  • query_embedding_store (可选[BaseStore[str, List[float]]]) – 用于缓存查询嵌入的存储。如果为 None,则不缓存查询嵌入。

返回类型

None

async aembed_documents(texts: List[str]) List[List[float]][source]

将一组文本嵌入。

该方法首先检查缓存中的嵌入。如果找不到嵌入,则方法使用底层嵌入器将文档嵌入并将在缓存中存储结果。

参数

texts (列表[str]) – 要嵌入的文本列表。

返回

给定文本的嵌入列表。

返回类型

列表[列表[float]]

async aembed_query(text: str) List[float][source]

嵌入查询文本。

默认情况下,此方法不缓存查询。要启用缓存,在初始化嵌入器时将 cache_query 参数设置为 True

参数

text (str) – 要嵌入的文本。

返回

给定文本的嵌入。

返回类型

列表[float]

embed_documents(texts: List[str]) List[List[float]][source]

将一组文本嵌入。

该方法首先检查缓存中的嵌入。如果找不到嵌入,则方法使用底层嵌入器将文档嵌入并将在缓存中存储结果。

参数

texts (列表[str]) – 要嵌入的文本列表。

返回

给定文本的嵌入列表。

返回类型

列表[列表[float]]

embed_query(text: str) List[float][source]

嵌入查询文本。

默认情况下,此方法不缓存查询。要启用缓存,在初始化嵌入器时将 cache_query 参数设置为 True

参数

text (str) – 要嵌入的文本。

返回

给定文本的嵌入。

返回类型

列表[float]

classmethod from_bytes_store(underlying_embeddings: Embeddings, document_embedding_cache: BaseStore[str, bytes], *, namespace: str = '', batch_size: Optional[int] = None, query_embedding_cache: Union[bool, BaseStore[str, bytes]] = False) CacheBackedEmbeddings[source]

向存储中添加必要的序列化和编码的入口。

参数
  • underlying_embeddings (Embeddings) – 用于嵌入的基础嵌入器。

  • document_embedding_cache (BaseStore[str, bytes]) – 用于存储文档嵌入的缓存。

  • *

  • namespace (str) –

  • batch_size (Optional[int]) –

  • query_embedding_cache (Union[bool, BaseStore[str, bytes]]) –

返回类型

CacheBackedEmbeddings

:param namespace: 文档缓存的命名空间。

此命名空间用于避免与其他缓存冲突。例如,将其设置为所使用的嵌入模型名称。

参数
  • batch_size (可选[int]) – 在存储更新之间嵌入的文档数。

  • query_embedding_cache (Union[bool, BaseStore[str, bytes]]) – 用于存储查询嵌入的缓存。True表示使用与文档嵌入相同的缓存。False表示不缓存查询嵌入。

  • underlying_embeddings (Embeddings) –

  • document_embedding_cache (BaseStore[str, bytes]) –

  • namespace (str) –

返回类型

CacheBackedEmbeddings

使用 CacheBackedEmbeddings 的示例