Как платить меньше
Десять приёмов: первые экономят в разы, последние страхуют от сюрпризов. Вы платите за токены входа и выхода, выход обычно в 4–5 раз дороже. Цены — в Модели и цены.
1Дешёвая модель для простых задач
Сортировку заявок, поиск телефона в письме, короткий перевод, орфографию отдайте deepseek-v4.1-flash, qwen3.8-flash или claude-haiku-5-5. claude-sonnet-5 и claude-opus-5-5 оставьте для кода, длинных рассуждений и важных текстов. Прогоните 20–30 своих запросов через дешёвую и сильную модель: разницы нет — берите дешёвую. Подробнее — Как выбрать модель.
Пример: разобрать 10 000 обращений по темам — claude-opus-5-5 $4.80, claude-haiku-5-5 $0.29, deepseek-v4.1-flash $0.17.
2Дешёвый исполнитель, сильный проверяющий
Черновик пишет дешёвая модель, сильная только проверяет и выносит короткий вердикт. Как собрать — Оркестрация агентов.
Пример: 1000 описаний товаров — всё на claude-opus-5-5 $5.60; пишет deepseek-v4.1-flash, проверяет claude-opus-5-5 — $2.96.
3Кэш промпта: неизменное — в начало
Инструкцию и базу знаний ставьте в начало запроса, а вопрос, дату, имя — в конец. Кэш работает сам, cache_control не нужен. Время в первой строке инструкции ломает кэш.
claude-sonnet-5иclaude-opus-5-5: в тесте из кэша читалось 40–70% повторяющейся части. Чтение кэша у Opus 5.5 — $0.08 вместо $0.8 за 1 млн токенов.- Первая запись чуть дороже обычного входа (у Sonnet $0.5 вместо $0.4 за 1 млн), окупается со второго-третьего повтора.
- У DeepSeek кэш стоит как обычный вход. У
claude-haiku-5-5кэш в тесте не срабатывал.
Пример: бот на claude-sonnet-5 с инструкцией на 20 000 токенов, 1000 вопросов в день — $8.64 в день без кэша, $3.60–5.76 с кэшем.
4Канал Standard для запросов без повторов
claude-sonnet-5-standard и claude-opus-5-5-standard берут одну цену за любой токен, вход и выход: $0.2 у Sonnet и $0.3 у Opus за 1 млн. Скидки за кэш нет. Выгодно, когда каждый запрос новый и модель много пишет: перевод, анкеты, описания, письма. Для бота с большой постоянной инструкцией невыгодно: чтение кэша у обычного Sonnet ($0.04) дешевле.
Пример: перевести 1000 документов — claude-sonnet-5 $7.20, claude-sonnet-5-standard $1.20.
5Кэш ответов X-Zukko-Cache: true
С этим заголовком точно такой же запрос (модель, текст, настройки) Zukko отдаст из сохранённого ответа бесплатно. Пригодится при перезапуске упавшего пайплайна.
- Хранится 7 дней, только успешный ответ до 2 МБ. Кэш свой у каждого аккаунта.
- В ответе будут
X-Zukko-Cache: hitиX-Zukko-Cost-Micros: 0, в историю расходов он не попадает. - Для Claude используйте заголовок, а не
temperature: 0: новые модели Claude могут отклонять нестандартныеtemperature.
Пример: пайплайн на 1000 строк упал на 600-й — перезапуск без кэша $2.00, с кэшем $0.80. Подробнее — Лимиты ключа, идемпотентность и кэш.
6Idempotency-Key: повтор не спишет дважды
Передайте уникальное значение — повтор с тем же значением вернёт сохранённый ответ без второго списания.
- Работает для
/v1/chat/completions,/v1/messagesи/v1/responses. Ответ хранится 24 часа. - То же значение с другим текстом запроса получит
422 idempotency_conflict. - Повторяйте после того, как первый запрос завершился или упал. Два одновременных запроса оплачиваются оба.
resp = client.chat.completions.create(
model="deepseek-v4.1-flash",
messages=[{"role": "user", "content": f"Определи тональность отзыва: {review_text}"}],
extra_headers={"Idempotency-Key": f"reviews-2026-10-26-row-{row_id}"},
)Пример: 10 000 запросов, 3% повторов из-за обрывов сети — без ключа лишние $0.90 за прогон, с ключом $0.
7Короткие ответы
Попросите в инструкции: «Отвечай в 2–3 предложениях», «Только JSON, без пояснений». max_tokens — только страховка: модель оборвётся на полуслове, ставьте с запасом. Рассуждение для простых задач не включайте.
Пример: бот на claude-sonnet-5, 1000 ответов в день, ответ с ~600 до ~200 токенов — экономия ~$24 в месяц.
8Короткая история переписки
Модель каждый раз получает всю переписку заново. Отправляйте последние 10–20 сообщений или раз в 20 сообщений заменяйте старые выжимкой от дешёвой модели. Инструкцию держите первой — она останется в кэше.
MAX_MESSAGES = 10
def build_messages(system_prompt, history):
# Инструкция всегда первая, из переписки — только последние сообщения
return [{"role": "system", "content": system_prompt}] + history[-MAX_MESSAGES:]Пример: 1000 диалогов по 40 сообщений на claude-sonnet-5 — $49 с полной историей, $21 с окном в 10 сообщений.
9Лимиты на ключ
В кабинете задайте ключу потолок расхода в день и месяц (после него запросы получают 429 и ничего не стоят) и список разрешённых моделей. Заведите отдельный ключ на каждого бота, агента или подрядчика. Лимиты мягкие: последний запрос может немного превысить потолок.
Пример: агент в цикле на claude-opus-5-5 тратит ~$53 в час. С дневным лимитом $2 потери — около $2.
10Следите за расходами
- Кабинет: страница «Использование».
- API: GET /v1/usage и GET /v1/balance.
- Заголовок
X-Zukko-Cost-Microsв каждом непотоковом ответе: стоимость в миллионных долях доллара (1500= $0.0015).
Запустите пример дважды — второй ответ придёт из кэша, стоимость будет 0:
import os
from openai import OpenAI
client = OpenAI(base_url="https://api.zukko.pro/v1", api_key=os.environ["ZUKKO_API_KEY"])
raw = client.chat.completions.with_raw_response.create(
model="deepseek-v4.1-flash",
messages=[{"role": "user", "content": "Столица Франции? Ответь одним словом."}],
max_tokens=100,
extra_headers={"X-Zukko-Cache": "true"},
)
resp = raw.parse()
print(resp.choices[0].message.content)
print("Кэш:", raw.headers.get("X-Zukko-Cache", "нет"))
print("Стоимость, $:", int(raw.headers.get("X-Zukko-Cost-Micros", "0")) / 1_000_000)