MLflow 会自动缓存内存中加载的提示以提高性能并减少重复的 API 调用。 缓存策略因是按版本还是别名访问提示而有所不同。
先决条件
- MLflow 版本 3.8 及更高版本支持提示缓存。
默认缓存行为
MLflow 实现区分的缓存:
-
基于版本的提示:无限期缓存,因为创建后提示版本不可变。 例如,
prompts:/summarization-prompt/1。 -
基于别名的提示:默认情况下缓存 60 秒,因为别名可能会随着时间的推移指向不同的版本。 例如,
prompts:/summarization-prompt@production。
每个请求的缓存控制
使用cache_ttl_seconds参数在load_prompt()中替代缓存行为。
import mlflow
# Custom TTL: cache for 5 minutes
prompt = mlflow.genai.load_prompt(
"prompts:/summarization-prompt/1",
cache_ttl_seconds=300
)
# Bypass cache: always fetch fresh data
prompt = mlflow.genai.load_prompt(
"prompts:/summarization-prompt@production",
cache_ttl_seconds=0
)
# Infinite caching for alias-based prompts
prompt = mlflow.genai.load_prompt(
"prompts:/summarization-prompt@production",
cache_ttl_seconds=float("inf")
)
全局缓存配置
使用环境变量设置系统范围的缓存默认值:
-
MLFLOW_ALIAS_PROMPT_CACHE_TTL_SECONDS:基于别名的提示的默认 TTL -
MLFLOW_VERSION_PROMPT_CACHE_TTL_SECONDS:版本提示的默认 TTL
若要全局禁用缓存,请将变量设置为 0。
缓存无效化
修改提示时,缓存会自动清除,包括:
- 标签更新
- 别名更改
- 版本删除操作