EmbeddingCache

May 15, 2026 · View on GitHub


类所在位置:

oxygent/embedding_cache.py

简介

EmbeddingCache 是一个轻量级的、基于磁盘持久化的文本嵌入缓存。缓存使用输入字符串的 MD5 哈希值作为键,对应的嵌入向量作为值。写入磁盘采用批量方式以减少 I/O 开销。它提供了同步和异步两种方法来获取缓存的或新计算的嵌入。

参数

参数类型 / 允许值默认值描述
save_batchint1000触发内存缓存刷新到磁盘前可累积的新嵌入数量
filestrcache.pkl缓存目录中缓存文件的路径
countint0自上次保存以来新增的嵌入计数器
datadict{}存储 MD5 键和嵌入值的内存缓存字典

方法

方法协程 (async)返回值用途
get_md5()str静态方法,返回键的 32 位 MD5 十六进制摘要
load()dict加载磁盘上的缓存(若存在),否则返回空字典
save()None将内存缓存持久化到磁盘
is_in()bool检查键是否存在于缓存中
set()None设置键值对,达到批量大小时触发保存
get()np.ndarray返回单个键或多个键的缓存或新计算的嵌入
_get_multiple()np.ndarray内部方法,处理多个键的嵌入获取
_get_single()np.ndarray内部方法,处理单个键的嵌入获取
_get_or_queue()np.ndarray or None内部方法,获取缓存的嵌入或将键加入批处理队列
_embed_and_cache()list内部方法,为队列中的文本计算嵌入并缓存

函数

函数协程 (async)返回值用途
get_embedding()np.ndarray通过 HTTP 请求获取一批输入文本的 L2 归一化嵌入