Кэширование промптов
/v1/chat/completions
prompt_tokens_details.cached_tokens
Некоторые модели автоматически кэшируют повторяющиеся префиксы промпта. Если начало вашего запроса совпадает с предыдущим (системный промпт, длинный контекст, база знаний), провайдер отдаёт эту часть из кэша по сниженной цене — обычно 10–50% от обычной стоимости входных токенов.
Как узнать, сработал ли кэш
В ответе API поле usage.prompt_tokens_details.cached_tokens показывает, сколько входных токенов
было взято из кэша:
{
"usage": {
"prompt_tokens": 5000,
"completion_tokens": 200,
"total_tokens": 5200,
"prompt_tokens_details": {
"cached_tokens": 4800
}
}
}
В этом примере 4 800 из 5 000 входных токенов были взяты из кэша — вы заплатили за них по сниженной ставке.
Пример
from openai import OpenAI
client = OpenAI(
api_key="rp_ваш_api_ключ",
base_url="https://api.modelgate.ru/v1"
)
long_system = "Ты эксперт по Python. " * 500 # длинный системный промпт
# Первый запрос — кэш ещё не заполнен
r1 = client.chat.completions.create(
model="deepseek-v3.2",
messages=[
{"role": "system", "content": long_system},
{"role": "user", "content": "Что такое декораторы?"}
]
)
# Второй запрос с тем же системным промптом — попадание в кэш
r2 = client.chat.completions.create(
model="deepseek-v3.2",
messages=[
{"role": "system", "content": long_system},
{"role": "user", "content": "Что такое генераторы?"}
]
)
details = r2.usage.prompt_tokens_details
print(f"Из кэша: {details.cached_tokens} токенов") # например: 4800
import OpenAI from 'openai';
const client = new OpenAI({
apiKey: 'rp_ваш_api_ключ',
baseURL: 'https://api.modelgate.ru/v1',
});
const longSystem = 'Ты эксперт по Python. '.repeat(500);
// Первый запрос — кэш ещё не заполнен
await client.chat.completions.create({
model: 'deepseek-v3.2',
messages: [
{ role: 'system', content: longSystem },
{ role: 'user', content: 'Что такое декораторы?' },
],
});
// Второй запрос с тем же системным промптом — попадание в кэш
const r2 = await client.chat.completions.create({
model: 'deepseek-v3.2',
messages: [
{ role: 'system', content: longSystem },
{ role: 'user', content: 'Что такое генераторы?' },
],
});
console.log(`Из кэша: ${r2.usage.prompt_tokens_details.cached_tokens} токенов`);
curl -X POST https://api.modelgate.ru/v1/chat/completions \
-H "Authorization: Bearer rp_ваш_api_ключ" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v3.2",
"messages": [
{"role": "system", "content": "Длинный системный промпт..."},
{"role": "user", "content": "Вопрос"}
]
}' | jq '.usage.prompt_tokens_details'
Где видно статистику
Данные о кэшировании отображаются в личном кабинете:
- Каталог моделей — на странице модели в таблице «Цены у провайдеров» отображается колонка «Кэш» с ценой за кэшированные токены (там, где провайдер её поддерживает).
- Статистика — карточка «Сэкономлено на кэше» и колонка «Кэш» в таблице по моделям.
- Логи — колонка «Кэш» в каждом запросе и фильтр «Только с кэшем».
- Встроенный чат — бейдж под каждым ответом показывает количество кэшированных токенов.
Совместимость
Поле cached_tokens возвращается только теми провайдерами и моделями, которые его поддерживают.
Для остальных это поле отсутствует или равно 0, а вход тарифицируется по обычной цене.
Полный список поддерживающих кэш моделей и их цены смотрите в каталоге моделей.