Caching
Enable and customize your gateway cache to serve requests directly from Cloudflare’s cache, instead of the original model provider, for faster requests and cost savings.
Default configuration
To set the default caching configuration in the dashboard:
- Log into the Cloudflare dashboard and select your account.
- Select AI > AI Gateway.
- Select Settings.
- Enable Cache Responses.
- Change the default caching to whatever value you prefer.
To set the default caching configuration using the API:
- Create an API token with the following permissions:
AI Gateway - Read
AI Gateway - Edit
- Get your Account ID.
- Using that API token and Account ID, send a
POST
request to create a new Gateway and include a value for thecache_ttl
.
This caching behavior will be uniformly applied to all requests that support caching. If you need to modify the cache settings for specific requests, you have the flexibility to override this setting on a per-request basis.
To check whether a response comes from cache or not, cf-aig-cache-status will be designated as HIT
or MISS
.
Per-request caching
In order to override the default cache behavior defined on the settings tab, you can, on a per-request basis, set headers for the following options:
Skip cache (cf-skip-cache)
Skip cache refers to bypassing the cache and fetching the request directly from the original provider, without utilizing any cached copy.
You can use the header cf-skip-cache to bypass the cached version of the request.
As an example, when submitting a request to OpenAI, include the header in the following manner:
Request skipping the cachecurl https://gateway.ai.cloudflare.com/v1/{account_id}/{gateway_slug}/openai/chat/completions \ --header 'Authorization: Bearer $TOKEN' \ --header 'Content-Type: application/json' \ --header 'cf-skip-cache: true' \ --data ' { "model": "gpt-3.5-turbo", "messages": [ { "role": "user", "content": "how to build a wooden spoon in 3 short steps? give as short as answer as possible" } ] }'
Cache TTL (cf-cache-ttl)
Cache TTL, or Time To Live, is the duration a cached request remains valid before it expires and requires refreshing from the original source. You can use cf-cache-ttl to set the desired caching duration in milliseconds.
For example, if you set a TTL of one hour, it means that a request is kept in the cache for an hour. Within that hour, an identical request will be served from the cache instead of the original API. After an hour, the cache expires and the request will go to the original API for a more recent response, and that response will repopulate the cache for the next hour.
As an example, when submitting a request to OpenAI, include the header in the following manner:
Request to be cached for an hourcurl https://gateway.ai.cloudflare.com/v1/{account_id}/{gateway_slug}/openai/chat/completions \ --header 'Authorization: Bearer $TOKEN' \ --header 'Content-Type: application/json' \ --header 'cf-cache-ttl: 3600000' \ --data ' { "model": "gpt-3.5-turbo", "messages": [ { "role": "user", "content": "how to build a wooden spoon in 3 short steps? give as short as answer as possible" } ] }'