Цена токена — не вся стоимость: как считать расходы на русском тексте
Цена токена не равна цене задачи: русский текст, история диалога и длина ответа меняют итоговый счёт. Разбираем формулу расчёта и сравниваем модели Протока на реальных объёмах.
При выборе модели часто сравнивают только цену за 1 млн токенов. Это полезный показатель, но он не всегда отражает итоговые расходы на русском языке. Один и тот же текст может занимать разное количество токенов в разных моделях: влияет язык, пунктуация, форматирование, код и даже способ передачи пробелов.
Поэтому корректный вопрос звучит не так: «Сколько стоит миллион токенов?», а так: «Сколько рублей потребуется на мой реальный запрос и ответ?»
Почему один текст занимает разное число токенов
Токен — это не всегда слово и не всегда символ. Токенизатор разбивает текст на фрагменты, которые модель использует при обработке. В английском языке распространённые слова и части слов часто кодируются компактно. В русском результат может быть другим: отдельные символы, окончания, пробелы и редкие сочетания иногда превращаются в большее число токенов.
На расход влияют:
- язык запроса и ответа;
- длина слов и частота их употребления;
- кириллица, латиница и смешанный текст;
- XML, JSON, Markdown и другой служебный формат;
- вставки кода, URL и идентификаторы;
- системные инструкции и история диалога;
- кэшируемая часть промпта.
Из-за этого две модели с одинаковой ценой токена могут давать разный счёт за один и тот же русский документ. А модель с более высокой ставкой за токен иногда оказывается выгоднее на конкретной задаче, если обрабатывает текст компактнее.
Как перевести котировку в стоимость задачи
Для расчёта нужны четыре величины:
- количество входных токенов;
- количество выходных токенов;
- цена входа за 1 млн токенов;
- цена выхода за 1 млн токенов.
Формула простая:
стоимость = входные токены / 1 000 000 × цена входа
+ выходные токены / 1 000 000 × цена выхода
Например, при запросе на 100 000 входных токенов и ответе на 20 000 токенов стоимость в Протоке для Claude Opus 5 составляет:
100 000 / 1 000 000 × 110,13 ₽
+ 20 000 / 1 000 000 × 550,62 ₽
= 12,02 ₽
Цены указаны на дату публикации. Фактический расход зависит от объёма контекста и ответа.
Для сравнения, те же объёмы у GLM-5.2 дают другой результат:
100 000 / 1 000 000 × 3,66 ₽
+ 20 000 / 1 000 000 × 11,50 ₽
= 0,60 ₽
Это не означает, что модели взаимозаменяемы по качеству и возможностям. Но расчёт показывает важное: тариф нужно сопоставлять с задачей, ожидаемым объёмом и требуемым уровнем результата.
Цена за тысячу символов — удобная практическая метрика
Токены удобны для биллинга, но бизнесу часто проще мыслить страницами, символами или документами. Чтобы получить приблизительную цену за тысячу символов, сначала нужно измерить, сколько токенов занимает типичный фрагмент текста.
Допустим, русский документ содержит 100 000 символов и после токенизации занимает 140 000 входных токенов. При цене входа 60,60 ₽ за 1 млн токенов стоимость обработки будет:
140 000 / 1 000 000 × 60,60 ₽ = 8,48 ₽
То есть ориентир составляет около 0,085 ₽ за тысячу символов. Для другого токенизатора тот же документ может занять иной объём, поэтому универсальной цены «за страницу» не существует.
Этот показатель полезен при планировании регулярных процессов: классификации обращений, извлечении данных из документов, подготовке сводок и поиске по корпоративной базе.
Как проверить расходы на своём тексте
Надёжнее всего взять реальные данные проекта и провести небольшой контрольный замер. Подойдут несколько типичных примеров:
- короткие пользовательские сообщения;
- длинные русскоязычные документы;
- инструкции и системные промпты;
- JSON-ответы;
- фрагменты кода;
- смешанный текст с таблицами и ссылками.
Далее для каждой модели нужно отдельно зафиксировать размер входа и выхода. Для OpenAI-совместимых клиентов в Протоке достаточно изменить base_url, а в параметре model указать slug модели из котировок.
Пример запроса на Python:
from openai import OpenAI
client = OpenAI(
api_key="",
base_url="https://dualchat.pro/v1"
)
response = client.chat.completions.create(
model="claude-opus-5",
messages=[
{
"role": "user",
"content": "Составь краткое резюме этого русского текста..."
}
],
max_tokens=500
)
print(response.choices[0].message.content)
print(response.usage)
В коде используется именно slug claude-opus-5, а не отображаемое название модели. Ключ вида sk-dc-… создаётся в кабинете Протока в разделе «Ключи».
Какие модели сравнить для русскоязычных задач
В котировках Протока на дату публикации доступны разные уровни стоимости:
- Claude Opus 5 — 110,13 ₽ за 1 млн входных токенов и 550,62 ₽ за 1 млн выходных;
- Claude Sonnet 5 — 60,60 ₽ и 303,00 ₽ соответственно;
- GLM-5.2 — 3,66 ₽ и 11,50 ₽;
- GLM-5.3 Flash — 11,76 ₽ и 39,18 ₽;
- GPT-5.6 Sol — 13,60 ₽ и 85,29 ₽;
- GLM-5.3 — 20,47 ₽ и 64,34 ₽;
- GPT-5.6 Terra — 7,58 ₽ и 45,45 ₽;
- Claude Opus 4.8 — 169,07 ₽ и 843,95 ₽.
Цены указаны на дату публикации, за 1 млн токенов: сначала вход, затем выход.
Если основная нагрузка приходится на длинные ответы, особенно важно смотреть на цену выхода. Если система принимает большие документы и отвечает коротко, главным параметром становится цена входа. Для диалоговых приложений нужно учитывать оба компонента: история переписки повторно входит в контекст, если её не сокращать или не кэшировать.
Как не ошибиться в прогнозе бюджета
Есть несколько практических правил.
Считайте вход и выход отдельно
Нельзя умножать общий объём текста на одну усреднённую ставку: вход и выход тарифицируются по разным ценам.
Используйте реальные примеры
Тестовый короткий запрос может плохо описывать расходы на длинные документы, таблицы и многоходовые диалоги.
Учитывайте историю переписки
В чатах каждый новый запрос может включать предыдущие сообщения. Без контроля контекста стоимость растёт быстрее, чем кажется по длине последнего вопроса.
Проверяйте фактический usage
Оценка по символам приблизительная. Для финансового контроля ориентируйтесь на фактическое количество входных и выходных токенов в ответе API и сопоставляйте его с котировкой модели.
Сравнивайте стоимость результата
Дешёвая обработка не всегда выгодна, если модель чаще требует повторных запросов, исправлений или дополнительной валидации. Сравнивать нужно не только цену токена, но и стоимость готового результата.
Итог
Цена токена — это тарифная единица, а не окончательная цена работы. Для русского текста решающими становятся токенизация, размер контекста, длина ответа и структура запроса. Поэтому перед запуском проекта стоит взять реальные примеры, измерить расход токенов и пересчитать его в рубли.
В Протоке можно выбрать модель под требуемый баланс качества и бюджета, оплачивать запросы по факту и подключиться через совместимый API. Поддерживаются стриминг, кэширование промптов, эмбеддинги, изображения, видео и аудио. Начните с тестовой серии на своих русскоязычных данных и сравните фактическую стоимость моделей в кабинете Протока.