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]¶
用于缓存嵌入模型结果的接口。
该接口允许与实现接受类型为str的键和浮点数列表值的抽象存储接口一起使用。
如果需要,接口可以扩展以接受其他值序列化器和反序列化器的实现,以及键编码器。
请注意,默认情况下仅缓存文档嵌入。要缓存查询嵌入,也可以将query_embedding_store传递给构造函数。
示例:
```python from langchain.embeddings import CacheBackedEmbeddings from langchain.storage import LocalFileStore from langchain_community.embeddings import OpenAIEmbeddings
store = LocalFileStore(‘./my_cache’)
underlying_embedder = OpenAIEmbeddings() embedder = CacheBackedEmbeddings.from_bytes_store(
underlying_embedder, store, namespace=underlying_embedder.model
)
# 嵌入被计算并缓存 embeddings = embedder.embed_documents([“hello”, “goodbye”])
# 从缓存中检索嵌入,不进行计算 embeddings = embedder.embed_documents([“hello”, “goodbye”]) ```
初始化嵌入器。
- 参数:
underlying_embeddings: 用于计算嵌入的嵌入器。 document_embedding_store: 用于缓存文档嵌入的存储。 batch_size: 在存储更新之间嵌入的文档数量。 query_embedding_store: 用于缓存查询嵌入的存储。
如果为None,则不缓存查询嵌入。
Methods
__init__
(underlying_embeddings, ...[, ...])初始化嵌入器。
aembed_documents
(texts)嵌入文本列表。
aembed_query
(text)嵌入查询文本。
embed_documents
(texts)嵌入文本列表。
embed_query
(text)嵌入查询文本。
from_bytes_store
(underlying_embeddings, ...)添加必要的序列化和编码到存储的入口。
- Parameters
underlying_embeddings (Embeddings) –
document_embedding_store (BaseStore[str, List[float]]) –
batch_size (Optional[int]) –
query_embedding_store (Optional[BaseStore[str, List[float]]]) –
- Return type
None
- __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: 用于计算嵌入的嵌入器。 document_embedding_store: 用于缓存文档嵌入的存储。 batch_size: 在存储更新之间嵌入的文档数量。 query_embedding_store: 用于缓存查询嵌入的存储。
如果为None,则不缓存查询嵌入。
- Parameters
underlying_embeddings (Embeddings) –
document_embedding_store (BaseStore[str, List[float]]) –
batch_size (Optional[int]) –
query_embedding_store (Optional[BaseStore[str, List[float]]]) –
- Return type
None
- async aembed_documents(texts: List[str]) List[List[float]] [source]¶
嵌入文本列表。
该方法首先检查嵌入缓存。 如果找不到嵌入,该方法将使用底层的嵌入器来嵌入文档,并将结果存储在缓存中。
- 参数:
texts:要嵌入的文本列表。
- 返回:
给定文本的嵌入列表。
- Parameters
texts (List[str]) –
- Return type
List[List[float]]
- async aembed_query(text: str) List[float] [source]¶
嵌入查询文本。
默认情况下,此方法不会缓存查询。要启用缓存,请在初始化嵌入器时将`cache_query`参数设置为`True`。
- 参数:
text:要嵌入的文本。
- 返回:
给定文本的嵌入。
- Parameters
text (str) –
- Return type
List[float]
- embed_documents(texts: List[str]) List[List[float]] [source]¶
嵌入文本列表。
该方法首先检查嵌入缓存。 如果找不到嵌入,该方法将使用底层的嵌入器来嵌入文档,并将结果存储在缓存中。
- 参数:
texts:要嵌入的文本列表。
- 返回:
给定文本的嵌入列表。
- Parameters
texts (List[str]) –
- Return type
List[List[float]]
- embed_query(text: str) List[float] [source]¶
嵌入查询文本。
默认情况下,此方法不会缓存查询。要启用缓存,请在初始化嵌入器时将`cache_query`参数设置为`True`。
- 参数:
text:要嵌入的文本。
- 返回:
给定文本的嵌入。
- Parameters
text (str) –
- Return type
List[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: 用于嵌入的嵌入器。 document_embedding_cache: 用于存储文档嵌入的缓存。 *, namespace: 用于文档缓存的命名空间。
此命名空间用于避免与其他缓存发生冲突。 例如,将其设置为所使用的嵌入模型的名称。
batch_size: 在存储更新之间要嵌入的文档数量。 query_embedding_cache: 用于存储查询嵌入的缓存。
True 表示使用与文档嵌入相同的缓存。 False 表示不缓存查询嵌入。
- Parameters
underlying_embeddings (Embeddings) –
document_embedding_cache (BaseStore[str, bytes]) –
namespace (str) –
batch_size (Optional[int]) –
query_embedding_cache (Union[bool, BaseStore[str, bytes]]) –
- Return type