Skip to main content

Caching

promptfoo caches the results of API calls to LLM providers. This helps save time and cost.

Command line​

If you're using the command line, call promptfoo eval with --no-cache to disable the cache, or set { evaluateOptions: { cache: false }} in your config file.

Use promptfoo cache clear command to clear the cache.

Node package​

Set EvaluateOptions.cache to false to disable cache:

promptfoo.evaluate(testSuite, {
cache: false,
});

Tests​

If you're integrating with jest, mocha, or any other external framework, you'll probably want to set the following for CI:

PROMPTFOO_CACHE_TYPE=disk
PROMPTFOO_CACHE_PATH=...

Configuration​

The cache is configurable through environment variables:

Environment VariableDescriptionDefault Value
PROMPTFOO_CACHE_ENABLEDEnable or disable the cachetrue
PROMPTFOO_CACHE_TYPEdisk or memorymemory if NODE_ENV is test, otherwise disk
PROMPTFOO_CACHE_MAX_FILE_COUNTMaximum number of files in the cache10,000
PROMPTFOO_CACHE_PATHPath to the cache directory~/.promptfoo/cache
PROMPTFOO_CACHE_TTLTime to live for cache entries in seconds14 days
PROMPTFOO_CACHE_MAX_SIZEMaximum size of the cache in bytes10 MB