EmbeddingCache
May 15, 2026 · View on GitHub
类所在位置:
oxygent/embedding_cache.py
简介
EmbeddingCache 是一个轻量级的、基于磁盘持久化的文本嵌入缓存。缓存使用输入字符串的 MD5 哈希值作为键,对应的嵌入向量作为值。写入磁盘采用批量方式以减少 I/O 开销。它提供了同步和异步两种方法来获取缓存的或新计算的嵌入。
参数
| 参数 | 类型 / 允许值 | 默认值 | 描述 |
|---|---|---|---|
save_batch | int | 1000 | 触发内存缓存刷新到磁盘前可累积的新嵌入数量 |
file | str | cache.pkl | 缓存目录中缓存文件的路径 |
count | int | 0 | 自上次保存以来新增的嵌入计数器 |
data | dict | {} | 存储 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 归一化嵌入 |