提示缓存

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

缓存无效化

修改提示时,缓存会自动清除,包括:

  • 标签更新
  • 别名更改
  • 版本删除操作

后续步骤