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]]) –
- 返回类型
: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) –
- 返回类型