К содержимому
ErgonLab
← Блог
Гайд · LLM
· 7 мин

Что такое токен и почему output дороже input в 5 раз

Без понимания экономики токенов невозможно оценить стоимость AI-проекта. Разбираю input/output, контекстное окно и prompt caching на пальцах.

Что такое токен

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

Грубо: одно русское слово ≈ 2-3 токена. Одно английское слово ≈ 1-1.5 токена. Английский «дешевле» по токенам, поэтому код в среднем считается экономичнее текста.

Когда ты отправляешь Claude сообщение «Привет, как дела?» — это около 8-10 токенов. Не потому, что 4 слова, а потому, что русский разбивается мельче.

Input и output — две разные цены

У всех LLM-провайдеров разные тарифы на:

  • Input (что ты отправляешь модели — твой промт, прошлая история разговора, документация, код)
  • Output (что модель пишет в ответ)

Output в 5 раз дороже input у Claude. У OpenAI и Google — примерно так же, разница в 4-5 раз.

Почему: input модель «прочитывает» один раз через всю свою сеть, output генерирует токен за токеном, каждый — через всю сеть заново. Пять прогонов вместо одного — отсюда и цена.

Что это меняет на практике

Дешёвый паттерн: дать модели много контекста, попросить короткий ответ. Например, скормить всю переписку с клиентом и попросить написать одно сообщение в три предложения.

Дорогой паттерн: короткий промт, длинный ответ. «Напиши мне статью на 10 страниц» — это и есть тот самый дорогой паттерн.

Если строишь продукт на API — считай прежде всего output-токены. Они формируют 70-80% счёта.

Контекстное окно

У каждой модели есть ограничение — сколько токенов она может удерживать одновременно. У Claude Sonnet 4 — до 200K токенов в стандартном режиме, до 1M в расширенном. Это и прошлая переписка, и новый промт, и ответ, который пока генерируется.

200K токенов — это примерно:

  • 150 тысяч английских слов
  • 80-100 тысяч русских слов
  • одна толстая книга
  • весь ваш проект на 30-50 файлов кода

Когда контекст переполняется, начинается компактирование — старые сообщения сжимаются. Качество ответа в этот момент падает.

Практика: не превращай один разговор в марафон на 10 часов. Когда задача сделана — закрывай сессию, открывай новую. Свежий контекст всегда работает лучше переполненного.

Prompt caching — как платить меньше

Если ты в одном проекте отправляешь тот же CLAUDE.md (10K токенов) каждое сообщение — Anthropic это видит и кеширует этот кусок. Следующее обращение к тем же токенам считается не как полный input, а как cache hit — в 10 раз дешевле.

Условия:

  • Закешированный кусок не меняется
  • Разрыв между сообщениями ≤ 5 минут
  • Минимум 1024 токена в одном кеш-блоке

Что это значит практически: разговор с Claude Code, где у тебя огромный CLAUDE.md и история, дешевле, чем кажется по input-токенам. Кеш закрывает основную часть.

И обратная сторона: если ты раз в полчаса задаёшь короткий вопрос — каждый раз платишь полную цену за весь контекст. Лучше сгруппировать задачи в один заход.

Считаем стоимость живого проекта

Возьмём Claude Sonnet 4 (тарифы на середину 2026):

  • Input: $3 за 1M токенов
  • Output: $15 за 1M токенов
  • Cache hit: $0.30 за 1M токенов (в 10 раз дешевле input)

Один день работы со средним проектом:

  • 200K токенов input (с кешем — фактически 30K без кеша + 170K из кеша)
  • 50K токенов output
  • 30K × $3/1M = $0.09
  • 170K × $0.30/1M = $0.05
  • 50K × $15/1M = $0.75

Итого ~$0.89 за рабочий день. Без кеширования было бы ~$1.35. Кеш экономит треть.

Месяц активной работы — $20-30. Меньше, чем подписка на ChatGPT Plus, и без лимитов.

Что важно запомнить

  1. Output × 5 — основной множитель цены. Длинные ответы стоят дорого.
  2. Контекстное окно — не «бесконечная память». После 70-80% от лимита качество падает.
  3. Prompt caching работает молча. Не надо его настраивать — Anthropic делает это сам, если ты в одном разговоре.
  4. Считай в токенах, не в словах. Русский текст в 2 раза «толще» английского.

Если строишь продукт на Claude API — первая оптимизация всегда: сократить output. Потом — собрать длинный системный промт в один большой блок и закешировать. Потом — резать input.

Соседние посты

Читать дальше

← Предыдущий
Иерархия Claude Code: 6 слоёв за 5 минут
Следующий →
Embeddings vs inference: где заканчивается ChatGPT и начинается RAG
Все материалы
Принимаю заказы

Понравилось?
Обсудим задачу?

Напишите коротко — ответим в течение дня.

Написать в Telegram
@ergonlab_bot