> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ruapi.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Кэширование промптов: повторный контекст как минимум в 10 раз дешевле

> Как работает кэширование промптов в RuAPI: Claude через нативный Anthropic API и через OpenAI-совместимый формат (cache_control), автоматический кэш GPT и DeepSeek, цены и как проверить попадание в кэш.

Агенты для программирования и чат-боты снова и снова отправляют модели один и тот же контекст: системный промпт, файлы проекта, историю диалога. В агентных сценариях это обычно 80–97% всех входных токенов. С кэшированием промптов за этот повторный контекст больше не нужно платить полную цену: модель запоминает уже обработанное начало запроса, а повторное чтение из кэша стоит как минимум в 10 раз дешевле обычного ввода.

## Что даёт RuAPI

* **Claude через нативный Anthropic API — как у Anthropic.** Запросы на `https://www.ruapi.ai/v1/messages` передаются вместе с метками `cache_control` без изменений, включая `ttl`. Claude Code, Anthropic SDK и агенты с провайдером Anthropic получают кэш без дополнительной настройки.
* **Claude через OpenAI-совместимый формат — тоже с кэшем.** RuAPI передаёт в Claude метки `cache_control` в блоках сообщений и понимает одну метку на верхнем уровне запроса (автоматическое кэширование); синтаксис тот же, что в OpenRouter. Собственный OpenAI-совместимый слой Anthropic кэширование не поддерживает.
* **GPT и DeepSeek — автоматически.** Кэш срабатывает сам, когда начало запроса повторяется: настраивать ничего не нужно.
* **Прозрачный учёт.** В ответе API видно, сколько токенов прочитано из кэша и записано в него, а в консоли то же самое показано по каждому запросу.
* **Без VPN и без карты иностранного банка.** RuAPI доступен из России напрямую, баланс пополняется в USDT.

## Сколько это стоит

| Что | Цена |
| - | - |
| Чтение из кэша (Claude) | как минимум в 10 раз дешевле обычного ввода |
| Запись в кэш на 5 минут (Claude) | 1,25 × цена ввода |
| Запись в кэш на 1 час (Claude) | 2 × цена ввода |
| Вывод | обычная цена: вывод не кэшируется |

Точные ставки по каждой модели — на [странице цен](https://www.ruapi.ai/pricing?utm_source=docs\&utm_campaign=ru-prompt-caching). Запись в кэш стоит немного дороже обычного ввода, поэтому кэш окупается, как только один и тот же контекст отправлен хотя бы второй раз за время его жизни. Каждое попадание продлевает жизнь кэша ещё на 5 минут (или на час).

## Claude: как включить кэш

### Какой формат у вас

Один ключ RuAPI работает с Claude в двух форматах: в нативном формате Anthropic и в OpenAI-совместимом. От формата зависит, как включается кэш. Если не уверены, посмотрите в любом из этих мест:

| Где посмотреть | OpenAI-совместимый формат | Нативный формат Anthropic |
| - | - | - |
| **Журнал запросов** в консоли: откройте запись, строка «Путь запроса» | `/v1/chat/completions` | `/v1/messages` |
| Провайдер в настройках инструмента | OpenAI, OpenAI Compatible или Custom OpenAI | Anthropic или Claude |
| Ваш код | библиотека `openai` | библиотека `anthropic` |

Claude Code всегда работает в нативном формате Anthropic и сам ставит метки кэша — проверять ничего не нужно. В OpenAI-совместимом формате кэш работает, только если в запросе есть метки `cache_control`. Подробно о том, чем отличаются два формата, — на странице [Формат OpenAI или Anthropic](/ru/openai-vs-anthropic-format).

### Claude Code и агенты для программирования

| Инструмент | Что сделать |
| - | - |
| [Claude Code](/ru/integrations/claude-code) | Ничего: Claude Code сам ставит метки кэша |
| [Cline](/ru/integrations/cline), [Roo Code](/ru/integrations/roo-code) | Выбрать провайдер **Anthropic** с адресом `https://www.ruapi.ai` |
| [Kilo Code](/ru/integrations/kilo-code) | Провайдер **Anthropic Messages** с адресом `https://www.ruapi.ai/v1` |
| [Continue](/ru/integrations/continue) | `provider: anthropic` и `promptCaching: true` |
| [OpenCode](/ru/integrations/opencode) | Встроенный провайдер `anthropic` с адресом `https://www.ruapi.ai/v1` |

<Tip>
  Если в агенте для Claude выбран провайдер **OpenAI Compatible**, кэш работает, только когда сам агент ставит метки `cache_control`. Большинство агентов в этом режиме меток не ставит, поэтому для Claude надёжнее выбрать провайдер Anthropic.
</Tip>

### Своё приложение: Anthropic SDK

Поставьте метку `cache_control` на последний блок неизменной части запроса — например, на длинный системный промпт. Всё, что стоит до метки, попадёт в кэш.

```python theme={null}
import anthropic

client = anthropic.Anthropic(base_url="https://www.ruapi.ai", api_key="sk-...")

response = client.messages.create(
    model="claude-sonnet-5-5",
    max_tokens=1024,
    system=[
        {
            "type": "text",
            "text": LONG_SYSTEM_PROMPT,  # инструкции, документация, код проекта
            "cache_control": {"type": "ephemeral"},
        }
    ],
    messages=[{"role": "user", "content": "Ваш вопрос"}],
)
print(response.usage.cache_read_input_tokens, response.usage.cache_creation_input_tokens)
```

Чтобы кэш жил час, а не 5 минут, укажите `"cache_control": {"type": "ephemeral", "ttl": "1h"}`.

### Своё приложение: OpenAI SDK

В OpenAI-совместимом формате метка ставится на блок в `content`. Поэтому содержимое сообщения с меткой нужно передавать списком блоков, а не строкой.

```python theme={null}
from openai import OpenAI

client = OpenAI(base_url="https://www.ruapi.ai/v1", api_key="sk-...")

response = client.chat.completions.create(
    model="claude-sonnet-5-5",
    messages=[
        {
            "role": "system",
            "content": [
                {
                    "type": "text",
                    "text": LONG_SYSTEM_PROMPT,
                    "cache_control": {"type": "ephemeral"},
                }
            ],
        },
        {"role": "user", "content": "Ваш вопрос"},
    ],
)
print(response.usage.prompt_tokens_details.cached_tokens)
```

Можно обойтись и одной меткой `cache_control` на верхнем уровне запроса — у Anthropic это называется автоматическим кэшированием. RuAPI в этом случае сам ставит метку на последний блок последнего сообщения, как это делает Anthropic, поэтому такой вариант работает на всех наших каналах для Claude. С каждым новым сообщением метка сдвигается вперёд, и в кэш попадает вся предыдущая переписка.

<Note>
  В одном запросе можно поставить не больше 4 меток. Слишком короткое начало запроса не кэшируется: минимальная длина зависит от модели — например, 512 токенов у Claude Sonnet 5.5 и Claude Opus 5.5.
</Note>

## GPT и DeepSeek: кэш включается сам

* **GPT.** Если начало запроса длиной от 1024 токенов совпадает с недавним запросом, совпавшая часть берётся из кэша. Метки не нужны.
* **DeepSeek.** Кэш включён всегда: повторяющееся начало запроса считается по цене попадания в кэш.

Чтобы кэш срабатывал чаще, держите неизменную часть — системный промпт, инструкции, описание инструментов — в начале запроса, а всё, что меняется, — в конце.

## Как проверить, что кэш сработал

| Формат | Прочитано из кэша | Записано в кэш |
| - | - | - |
| Anthropic (`/v1/messages`) | `usage.cache_read_input_tokens` | `usage.cache_creation_input_tokens` |
| OpenAI (`/v1/chat/completions`) | `usage.prompt_tokens_details.cached_tokens` | `usage.prompt_tokens_details.cached_creation_tokens` (у Claude) |

В OpenAI-формате `prompt_tokens` уже включает токены из кэша — так же, как у OpenAI. В консоли то же самое видно по каждому запросу: **Журнал запросов** → детали записи.

## Сравнение

| | RuAPI | Anthropic напрямую | OpenRouter |
| - | - | - | - |
| Доступ из России без VPN | Да | Нет: Россия не входит в список поддерживаемых стран | Нет: ошибка 403 на российских IP |
| Кэш Claude через нативный Anthropic API | Да | Да | Да |
| Кэш Claude через OpenAI-совместимый формат | Да: метки `cache_control` в блоках и на верхнем уровне | Нет: OpenAI-совместимый слой кэширование не поддерживает | Да: метки в блоках; на верхнем уровне — только при маршруте к самой Anthropic |
| Оплата | USDT, карты иностранных банков | Карта | Карта, USDC |

Сведения о других сервисах — по документации [Anthropic](https://docs.anthropic.com/en/api/openai-sdk) и [OpenRouter](https://openrouter.ai/docs/features/prompt-caching) (проверено 15.10.2026); ошибка 403 OpenRouter — по нашей проверке 30.09.2026.

## Частые вопросы

<AccordionGroup>
  <Accordion title="Почему кэш не срабатывает?">
    * Изменилось начало запроса. Даже один символ до метки — текущее время, случайный идентификатор — означает новый префикс и новую запись в кэш.
    * Начало запроса слишком короткое для этой модели.
    * Прошло больше 5 минут без запросов (или часа, если указан `"ttl": "1h"`).
    * Claude вызывается в OpenAI-совместимом формате без меток `cache_control`.
  </Accordion>

  <Accordion title="Claude быстро списывает деньги с баланса — что проверить?">
    Скорее всего, кэш не срабатывает, и весь повторяющийся контекст каждый раз оплачивается по полной цене.

    1. Определите формат: откройте в **Журнале запросов** консоли запись с Claude и посмотрите строку «Путь запроса». `/v1/messages` — нативный формат Anthropic: кэш работает так же, как у Anthropic (Claude Code сам ставит метки), а частые причины промахов — в предыдущем вопросе. `/v1/chat/completions` — OpenAI-совместимый формат: проверьте пункты ниже. Другие способы определить формат — в разделе «Какой формат у вас» выше.
    2. Проверьте, срабатывает ли кэш: если в деталях записи есть строка «Токены из кэша», кэш сработал; если на повторяющихся запросах её нет, кэш не работает. В своём коде то же число видно в `usage.prompt_tokens_details.cached_tokens` в ответе API.
    3. Проверьте, ставит ли клиент метки `cache_control`: без них Claude ничего не кэширует. Многие агенты в режиме **OpenAI Compatible** меток не ставят — выберите в них провайдер Anthropic. В своём коде достаточно одной метки `cache_control` на верхнем уровне запроса.
    4. Если вы работаете через другой шлюз, проверьте в его документации, есть ли кэш Claude именно в OpenAI-совместимом формате. Он есть не везде: собственный OpenAI-совместимый слой Anthropic кэширование не поддерживает, а в документации APIYI, например, сказано, что скидка за кэш Claude действует только в нативном формате Anthropic (проверено 15.10.2026). В RuAPI кэш Claude работает в обоих форматах.
  </Accordion>

  <Accordion title="Кэширование платное?">
    Запись в кэш стоит в 1,25 раза дороже обычного ввода (в 2 раза для кэша на час), зато каждое следующее чтение — как минимум в 10 раз дешевле. Если контекст отправляется хотя бы дважды, вы уже экономите.
  </Accordion>

  <Accordion title="Нужно ли что-то включать в консоли RuAPI?">
    Нет. Кэширование работает для любого ключа: для Claude достаточно меток `cache_control` (Claude Code ставит их сам), у GPT и DeepSeek кэш включается автоматически.
  </Accordion>
</AccordionGroup>

## Дальше

* [Claude Code](/ru/integrations/claude-code): подключение с кэшем без дополнительной настройки.
* [Цены](/ru/pricing): как кэш влияет на итоговую стоимость.
* [DeepSeek или Claude: сколько стоит один день работы](/ru/deepseek-vs-claude): разбор реального счёта с кэшем.
* [Как платить за Claude Code и Cline в разы меньше](/ru/claude-code-cline-costs): что сбрасывает кэш и как держать контекст коротким.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.