昇腾社区首页
中文
注册

类功能

功能描述

用于配置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,不能为软链接和相对路径。

  • 目录下的各文件大小不能超过100GB、深度不超过64,且文件总个数不超过512。
  • 运行用户的属组,以及非运行用户不能有该目录下文件的写权限。
  • 目录下的文件以及文件的上一级目录的属组必须是运行用户。

默认值为"/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)