Модели OpenAI (GPT-4o и новее) поддерживают автоматическое кэширование промптов. Никаких изменений в коде не нужно — кэширование работает прозрачно для всех запросов.
- API автоматически кэширует запросы длиной от 1 024 токенов
- При повторном запросе с таким же началом (префиксом) кэшированная часть обрабатывается со скидкой
- Совпадение должно быть точным — любое отличие в префиксе сбрасывает кэш
- Кэшируется всё содержимое запроса: сообщения, изображения, описание инструментов, схемы structured output
- Запись в кэш: бесплатно — никаких дополнительных расходов
- Чтение из кэша: от 50% до 90% дешевле обычных входных токенов (зависит от модели: GPT-5 — 90%, GPT-4.1 — 75%, GPT-4o — 50%)
Кэш по умолчанию хранится в памяти 5–10 минут с момента последнего использования. Для моделей GPT-5 и новее доступен расширенный режим — до 24 часов:
{ "model": "gpt-5.1", "input": "...", "prompt_cache_retention": "24h" }
- Располагайте статичное содержимое (системный промпт, инструкции, tools) в начале запроса
- Динамическую часть (вопрос пользователя) — в конце
- Порядок инструментов и изображений должен быть одинаковым между запросами
- Для запросов с общим длинным префиксом используйте параметр
prompt_cache_key— он улучшает маршрутизацию и повышает вероятность попадания в кэш
Информация о кэшировании возвращается в поле usage ответа:
{ "usage": { "prompt_tokens": 2006, "completion_tokens": 300, "prompt_tokens_details": { "cached_tokens": 1920 } } }
Значение cached_tokens показывает, сколько токенов было обработано из кэша. Если оно равно 0 — запрос был обработан полностью с нуля.
Кэширование доступно для GPT-4o и всех более новых моделей, включая серии o1, o3, o4, GPT-5.
curl "https://api.proxyapi.ru/openai/v1/chat/completions" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer <КЛЮЧ>" \ -d '{ "model": "gpt-4o", "messages": [ { "role": "system", "content": "Длинный системный промпт (более 1024 токенов)..." }, { "role": "user", "content": "Вопрос пользователя" } ] }'
Отправьте два одинаковых запроса с интервалом в несколько секунд. Во втором ответе cached_tokens будет больше нуля — это означает, что кэш сработал и вы платите за эти токены вдвое меньше.