类功能
功能描述
用于配置memory cache的配置数据结构。
函数原型
from gptcache.config import Config from mx_rag.cache import CacheConfig # 继承自Config CacheConfig(cache_size, eviction_policy, auto_flush, data_save_folder, min_free_space, similarity_threshold, disable_report, lock)
输入参数说明
参数名 |
数据类型 |
可选/必选 |
说明 |
---|---|---|---|
cache_size |
int |
必选 |
缓存大小,配置缓存条目数。 cache_size不能小于等于“0”。 取值范围(0, 100000] |
eviction_policy |
EvictPolicy |
可选 |
缓存老化策略。 默认值为“LRU”,具体可参考EvictPolicy。 |
auto_flush |
int |
可选 |
数据落盘频度,即缓存多少条条目之后,进行一次落盘操作。 默认值:20 取值范围(0, cache_size] |
data_save_folder |
str |
可选 |
缓存落盘路径,路径长度不能超过1024,不能为软链接和相对路径。
默认值为"/home/HwHiAiUser/Ascend/mxRag/cache_save_folder"。 |
min_free_space |
int |
可选 |
用于检查落盘路径的可用空间,单位字节,默认值为1GB。 取值范围[20MB, 100GB] |
similarity_threshold |
float |
可选 |
相似度计算阈值 默认值:0.8 取值范围[0.0, 1.0] |
disable_report |
bool |
可选 |
是否需要支持维测数据功能 默认值:False 取值范围:True表示不支持;False表示支持。 |
lock |
multiprocessing.synchronize.Lock, _thread.LockType |
可选 |
CacheConfig不支持多线程或者多进程进行处理,如果用户需要多进程或者多线程调用此接口需要申请锁。默认值为None。 可选值: None:表示不使用锁,此时该接口不支持并发。 multiprocessing.Lock():表示进程锁,此时该接口支持多进程调用。threading.Lock():表示线程锁。此时该接口支持多线程调用。 |

- 本接口内部使用了pickle模块,有被恶意构造的数据在unpickle期间攻击的风险。需要保证在被加载的落盘数据data_save_folder是安全存储,仅可加载可信的落盘数据。
- 对于memory cache来说,它的落盘文件不能超过100MB大小。
调用示例
from paddle.base import libpaddle from mx_rag.cache import CacheConfig from mx_rag.cache import EvictPolicy from mx_rag.cache import MxRAGCache cache_config = CacheConfig( cache_size=100, eviction_policy=EvictPolicy.LRU, data_save_folder="path_to_cache_save_folder" ) mxrag_l1_cache = MxRAGCache("memory_cache", cache_config)
父主题: CacheConfig