Заметки

Токены и лимиты: как считать и экономить

M
Markabus
·4 августа 2026 г.
Монитор с дашбордом расхода токенов API — синие столбцы и графики на тёмном экране, рабочий стол разработчика ночью, клавиатура на переднем плане.

Когда вы работаете с любой языковой моделью через API, счётчик крутится не в словах и не в символах, а в токенах. Именно за токены выставляют счёт OpenAI, Anthropic и Google, именно в токенах измеряют лимиты запросов и размер контекстного окна. Понимать, что такое токен, сколько их в вашем тексте и как их посчитать заранее, — это прямая экономия денег и защита от неожиданных ошибок 429. В этой заметке разберём, как устроен подсчёт, где утекает бюджет и какие приёмы реально снижают расходы.

Что такое токен на самом деле

Токен — это не буква и не слово, а фрагмент текста, на которые модель разбивает ввод перед обработкой. За разбиение отвечает токенизатор — алгоритм на основе BPE (byte-pair encoding, «кодирование пар байтов»). Он берёт частые сочетания символов и превращает их в отдельные единицы словаря. Частые английские слова вроде the или and — это ровно один токен. Редкое или длинное слово разбивается на куски: например, tokenization может стать token + ization.

Практическое правило для английского текста: примерно 4 символа на токен, или около 0,75 слова. То есть 1000 английских слов — это грубо 1300–1400 токенов. Это удобная прикидка «на глаз», но для счёта денег её недостаточно: точное число зависит от конкретного токенизатора модели.

Почему русский текст «дороже» английского

Здесь кроется ловушка, о которой часто забывают. Токенизаторы обучены в основном на англоязычных данных, поэтому кириллица дробится куда мельче. Одно русское слово нередко превращается в два, три, а то и четыре токена, тогда как его английский аналог укладывается в один-два. На практике русский текст расходует в 2–3 раза больше токенов, чем англоязычный текст того же смысла.

Из этого следуют два вывода. Во-первых, оценивая бюджет на русскоязычный проект, закладывайте кратно больше токенов, чем подсказывает интуиция из англоязычных примеров. Во-вторых, длинные системные инструкции и примеры лучше держать компактными: каждый лишний абзац на русском «весит» ощутимо дороже.

За что именно вы платите

Счёт складывается из двух частей, и тарифы у них разные. Входные токены (input) — это всё, что вы отправляете модели: системная инструкция, описания инструментов, история диалога, приложенные документы и сам вопрос. Выходные токены (output) — это то, что модель сгенерировала в ответ. Выход почти всегда дороже входа в несколько раз.

Ключевой момент, на котором теряют деньги: при каждом новом запросе в диалоге вся предыдущая переписка отправляется заново как входные токены. Длинный разговор на двадцать реплик — это двадцатый запрос, который тащит за собой все девятнадцать предыдущих. История не хранится на стороне модели «бесплатно»; вы оплачиваете её пересылку каждый раз.

Для ориентира — актуальные тарифы на август 2026 года (за миллион токенов, вход / выход):

  • Claude: Opus 4.8 — $5 / $25, Sonnet — $3 / $15, Haiku 4.5 — $1 / $5.
  • OpenAI: GPT-5.6 Sol — $5 / $30, Terra — $2 / $12, Luna — $0,20 / $1,20.
  • Gemini: 3.6 Flash — $1,50 / $7,50, 2.5 Flash — $0,30 / $2,50, 3.1 Pro — $2 / $12 (до 200K токенов в промпте).

Разброс между «тяжёлой» и «лёгкой» моделью — десятки раз. Это первое, на что стоит смотреть при оптимизации. Подробное сравнение тарифов и лимитов трёх платформ есть в отдельном разборе: сравнение API Gemini, Claude и OpenAI.

Как посчитать токены заранее

Гадать не нужно — все провайдеры дают инструменты для точного подсчёта до отправки запроса. Это позволяет заранее оценить стоимость и не упереться в лимит.

У OpenAI есть библиотека tiktoken для Python: вы загружаете кодировщик нужной модели и получаете точное число токенов для любой строки локально, без обращения к API. У Anthropic есть эндпоинт count_tokens, который считает токены для сообщений Claude с учётом системной инструкции и инструментов. У Google — метод countTokens в SDK Gemini. Есть и веб-инструменты: официальный Tokenizer от OpenAI показывает разбиение прямо в браузере — удобно, чтобы наглядно увидеть, как дробится ваш русский текст.

Практика простая: перед тем как гонять большой промпт в цикле по тысячам записей, прогоните один экземпляр через счётчик, умножьте на объём и на тариф. Так вы увидите итоговую сумму до того, как она появится в счёте.

Лимиты: RPM, TPM и ошибка 429

Кроме денег токены упираются в лимиты скорости. Провайдеры ограничивают не только число запросов в минуту (RPM, requests per minute), но и число токенов в минуту (TPM, tokens per minute). Anthropic идёт дальше и делит лимит на три измерения: запросы (RPM), входные токены в минуту (ITPM) и отдельно выходные (OTPM). Часто именно выход становится «узким горлышком».

Когда вы превышаете любой из порогов, API возвращает ошибку HTTP 429 Too Many Requests. Коварство в том, что один крупный запрос способен «съесть» половину минутного бюджета TPM за один вызов — и следующий запрос отвергается, даже если по числу запросов у вас есть запас. Лимиты растут по тирам (уровням): чем больше накопленная сумма оплат, тем выше пороги.

Два практических вывода. Считайте токены до отправки, чтобы не влететь в TPM большим промптом. И обрабатывайте 429 корректно — через повтор с экспоненциальной задержкой и джиттером (случайной добавкой ко времени ожидания), а не через немедленный повторный запрос, который только усугубит ситуацию.

Семь способов сократить расход

1. Берите модель под задачу

Не всё нужно решать флагманом. Классификация письма, извлечение полей, короткое резюме отлично работают на Haiku, Luna или Flash — они в десятки раз дешевле. Тяжёлую модель оставьте для сложного рассуждения и кода. Как выбирать под тип задачи, разобрано в заметке сравнение нейросетей: какую выбрать в 2026.

2. Чистите контекст

Не отправляйте всю историю диалога, если она не нужна. Держите только релевантные последние реплики, а старую переписку сворачивайте в краткое резюме. Урезайте системную инструкцию до сути — особенно на русском, где каждый абзац дорогой.

3. Включите кэширование промптов

Если у вас большой неизменный «префикс» — системная инструкция, описания инструментов, справочный документ — его можно закэшировать. Повторное чтение из кэша стоит около 10% от обычной цены входа. На повторяющихся запросах экономия достигает 50–90%. Механику по всем трём провайдерам мы разбирали в заметке кэширование промптов: как снизить расходы на API.

4. Используйте Batch API для несрочного

Если ответ не нужен сию секунду — массовая генерация описаний, разметка датасета, ночная обработка — отправляйте задания через пакетный (batch) режим. Он даёт скидку 50% на вход и выход у всех трёх провайдеров.

5. Ограничивайте длину ответа

Выход дороже входа, поэтому длина ответа бьёт по кошельку сильнее. Ставьте параметр max_tokens, просите модель отвечать кратко и по делу, а где нужен машинный результат — используйте структурированный вывод в JSON вместо развёрнутого текста с «водой».

6. Применяйте RAG вместо огромного контекста

Не заталкивайте всю базу знаний в каждый запрос. Подход RAG (retrieval-augmented generation) подтягивает только релевантные фрагменты под конкретный вопрос — это резко сокращает входные токены при том же качестве ответа.

7. Считайте и следите

Подключите подсчёт токенов и логируйте расход по эндпоинтам и типам задач. Когда видно, где именно утекает бюджет, оптимизация становится точечной, а не наугад.

Коротко

Токен — это фрагмент текста, а не слово; русский текст расходует их в 2–3 раза больше английского. Платите вы и за вход, и за выход, причём история диалога пересылается заново каждый запрос. Считайте токены заранее встроенными инструментами, следите за лимитами RPM и TPM, чтобы не ловить 429. А чтобы платить меньше — берите модель по размеру задачи, чистите контекст, включайте кэширование и Batch API, ограничивайте длину ответа и подтягивайте контекст через RAG. Эти приёмы в сумме легко сокращают счёт в разы.

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

Q.Сколько символов в одном токене?

Для английского текста — примерно 4 символа, или около 0,75 слова. Русский текст токенизатор дробит мельче, поэтому он расходует в 2–3 раза больше токенов на тот же смысл.

Q.За что берут деньги — за вход или за выход?

За оба, но выходные токены обычно в несколько раз дороже входных. При этом вся история диалога отправляется заново как входные токены при каждом новом запросе.

Q.Что означает ошибка 429?

Превышен лимит скорости — по числу запросов в минуту (RPM) или по токенам в минуту (TPM). Помогает подсчёт токенов заранее и повтор с экспоненциальной задержкой и джиттером.

Q.Как быстрее всего снизить расходы на API?

Взять модель попроще под простую задачу, урезать контекст, включить кэширование промптов и пакетный (batch) режим со скидкой 50% на вход и выход.

Источники

Предыдущая
Кэширование промптов: как снизить расходы на API
Следующая
Подключаем MCP-серверы к Claude Code: пошаговый гайд

Читайте также

Фотореалистичный вечерний кадр рабочего места разработчика: пустое кресло отодвинуто от стола, на мониторе — список задач с зелёными отметками о выполнении и бегущий журнал, рядом отодвинутая клавиатура, остывший кофе и блокнот; агент продолжает работу без человека — иллюстрация к обзору ZCode от Z.aiЗаметки
22 августа 2026 г.

ZCode от Z.ai: обзор агентной среды разработки на GLM-5.3

Z.ai выпустила ZCode — бесплатное десктопное приложение, где в центре интерфейса не редактор кода, а сам ИИ-агент. Разбираем, что умеет среда, чем в ней силён свежий GLM-5.3 с контекстом на миллион токенов, сколько это стоит и кому подойдёт вместо Cursor или Claude Code.

Читать →
Открытый корпус компьютера на столе крупным планом: видеокарта с синей подсветкой и радиатором, рядом монитор с терминалом и мини-сервер со светодиодамиЗаметки
22 августа 2026 г.

Локальные модели: запускаем Ollama на своём сервере

Ollama ставит языковую модель на ваше железо и поднимает рядом HTTP-сервер, совместимый с OpenAI API. Разбираем требования к памяти, установку, команды, настройки сервиса и то, где локальный запуск честно проигрывает облаку.

Читать →
Крупный план рабочего стола разработчика: на экране ноутбука открыто окно OAuth-согласия с запросом разрешений, позади — второй монитор с терминалом и JSON-документом; тёмная графитовая комната, синее свечение только от экранов.Заметки
22 августа 2026 г.

Remote MCP: подключаем сервер по OAuth своими руками

Локальному MCP-серверу хватает ключа в переменной окружения, удалённому — нет. Разбираем, что именно нужно реализовать на своей стороне: метаданные защищённого ресурса, корректные 401 и 403, проверку аудитории токена и новый способ регистрации клиентов CIMD.

Читать →