Счёт Mistral API — не «одна оплата за один вызов». Он складывается из входных токенов, выходных токенов, попаданий в кэш, а для специализированных моделей OCR и речи — из собственных единиц. Многие команды планируют бюджет по одной цифре со страницы цен, а после запуска видят счёт заметно выше. Причина обычно не в изменении тарифа, а в структуре входа, длине контекста и числе повторов, которые отличаются от расчётных.
Ниже биллинг Mistral API разложен на вычислимые части: какие единицы тарифицируются, как складываются вход и выход, почему стоимость растёт с числом раундов, как кэш и повторы влияют на счёт и как построить бюджет по реальным логам и сверить его со счётом. Конкретные тарифы определяются официальной страницей цен Mistral и разделом цены на модели; статья не фиксирует единичные цены.
Примечание: Mistral и Mistral AI — товарные знаки их правообладателей. Статья опирается на публичную документацию по состоянию на октябрь 2026 года; названия моделей, единицы и цены могут меняться, поэтому перед закупкой повторно сверьтесь с официальной документацией Mistral и страницей цены на модели.
1. Сначала разделите единицы: не все модели считаются в токенах
Языковые модели Mistral тарифицируются по токенам, но OCR, речь, Embedding и другие специализированные модели имеют собственные единицы. Сложение расходов в разных единицах — первый источник искажения бюджета.
| Объект тарификации | Единица | Типичный сценарий | Что учесть в бюджете |
|---|---|---|---|
| Языковые модели | Входные и выходные токены | Диалоги, извлечение, код, агенты | Выход обычно дороже входа; на вход из кэша действует скидка |
| OCR | Страницы, включая кэшированные | Сканы, PDF в текст | Считать отдельно от токенов |
| Транскрипция речи | Минуты, включая кэшированные | Записи встреч, звонки поддержки | По длительности, а не по числу слов |
| Синтез речи | Символы | Озвучивание, дубляж | Отдельно отмечать вход и выход |
| Embedding | Входные токены | Поиск, кластеризация, дедупликация | Обычно только входная сторона |
| Модерация контента | Токены | Безопасность контента, риск-контроль | Платность определяется текущей отметкой на странице цен |
Страница цен обычно также различает уровни Standard, Batch и Priority. Они рассчитаны на разные требования по срокам; возможность использовать Batch зависит от того, может ли задача ждать.
2. Вход и выход: в одном диалоге платны обе стороны
В одном запросе входом считается всё, что попадает в контекст модели: system prompt, история сообщений, вопрос пользователя, определения инструментов, найденные документы и пересчитанная часть мультимодального входа. Выходом считается сгенерированный контент: текст, структурированные поля и процесс рассуждения, если модель возвращает мысли.
Отсюда два частых заблуждения:
- Считать только вопрос пользователя, не считая контекст. Пользователь написал двадцать слов, но основную часть могут составлять system prompt, схема инструментов и история пяти предыдущих раундов.
- Сравнивать только цену входа, не глядя на долю выхода. В поддержке много входа и мало выхода; в генерации длинных текстов наоборот. Средняя стоимость одного вызова для этих сценариев не может быть одинаковой.
Способ пересчёта мультимодального входа и включение рассуждений в выход определяются официальной документацией и правилами счёта; не переносите опыт других поставщиков автоматически.
3. Длина контекста: каждый раунд платит за «предыдущие слова»
Языковая модель не хранит память диалога. Многораундовый диалог работает потому, что клиент каждый раз отправляет историю заново. Чем длиннее контекст, тем больше входных токенов в каждом запросе, и стоимость накапливается по раундам, а не растёт только на «новую фразу».
Наглядный пример: в первом раунде отправляются только system prompt и вопрос; в пятом нужно приложить четыре предыдущих пары; в двадцатом — всё предыдущее. Даже если каждый раунд добавляет немного, вход двадцатого раунда может быть в несколько раз больше первого.
Методы контроля несложные:
- хранить только последние несколько раундов дословно, более раннее сворачивать в резюме;
- при поиске подтягивать только релевантные фрагменты, а не вставлять весь справочник;
- стабильное содержимое размещать в начале, изменяемое — в конце, создавая условия для кэша;
- длинные документы сначала обрабатывать по частям, затем сводить, а не повторять целиком каждый раунд.
4. Кэш, пакетная обработка и повторы: три недооценённые переменные
Кэшированный вход. Mistral предоставляет цену кэшированного входа для текстовых моделей, обычно заметно ниже обычного. Попадание зависит от стабильности префикса запроса. Если в начало system prompt попадают метка времени, случайный ID или имя пользователя, либо определения инструментов каждый раз переставляются, кэш не срабатывает. Кэш обычно работает по мере возможности, поэтому бюджет считайте по «частичному попаданию», а не предполагайте полное.
Пакетный уровень. Задачи разметки, резюмирования, офлайн-классификации и массового перевода, которым не нужен ответ в реальном времени, можно оценить на уровне Batch. Он жертвует временем ожидания в обмен на другой ценовой уровень; конкретные скидки и ограничения — на странице цен.
Повторы. Повторная отправка после 429, тайм-аута или обрыва соединения увеличивает фактическое число запросов. Платны ли неудачные запросы и не списываются ли повторы дважды, определяется счётом и официальными пояснениями. В коде используйте экспоненциальную задержку, ограничивайте число повторов и делайте создающие операции идемпотентными, чтобы не получить «деньги списаны дважды, результат один».
5. Реальная оценка по usage и логам
Не угадывайте токены по числу символов. Читайте usage из ответа после каждого вызова и записывайте неделю — так вы получите реальную структуру своего бизнеса. Пример ниже вызывает через OpenAI-совместимый интерфейс; название модели читается из переменной окружения, чтобы не зашивать изменяемое имя.
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["ZSQH_API_KEY"],
base_url="https://ai.zhongshangqihang.com/v1",
)
resp = client.chat.completions.create(
model=os.environ["MISTRAL_MODEL"], # название модели — по странице цен сайта
messages=[
{"role": "system", "content": "Ты ассистент поддержки, отвечай не более трёх предложений."},
{"role": "user", "content": "Можно ли изменить адрес после отправки заказа?"},
],
max_tokens=256,
)
u = resp.usage
print("вход", u.prompt_tokens)
print("выход", u.completion_tokens)
print("всего", u.total_tokens)
Фиксируйте как минимум: время, проект, модель, входные токены, выходные токены, попадание в кэш, число повторов и потоковость. Сумму считайте в конце месяца по тарифам страницы цен, а процессные метрики смотрите ежедневно.
6. От оценки к счёту: какие запасы закладывать
При планировании бюджета оценивайте четыре блока отдельно, затем складывайте: базовый расход, пиковый расход, повторы и ошибки, промахи кэша.
При сверке учитывайте три различия в правилах:
- предоплаченный баланс обычно уменьшается на сумму с налогом, а лимит расходов часто считается до налога — значения могут не совпадать;
- месячный лимит организации ограничивает все Workspace, и лимит отдельного Workspace не может быть выше лимита организации;
- при недостатке баланса запросы сверх включённого пакета могут возвращать HTTP 402; это не сбой модели, а состояние биллинга.
В кабинете Mistral доступны список счетов и скачивание PDF; пополнение, стоимость пакета и оплата по факту отражаются раздельно. Для корпоративного возмещения храните счёт, номер заказа, платёжное подтверждение и детализацию расхода вместе. Порядок выставления счетов описан в статье о пополнении Mistral API на этом сайте.
7. Порядок снижения затрат не должен быть обратным
- Сначала измерьте: по
usageи логам определите структуру входа и выхода каждой функции, без ощущений. - Затем повысьте попадание в кэш: зафиксируйте system prompt, определения инструментов и префикс знаний, перенесите динамику в конец.
- Затем сократите вход: сворачивайте историю в резюме, подтягивайте только релевантные фрагменты, оставляйте в выводе инструментов необходимые поля.
- Ограничьте выход: задайте разумный
max_tokens, требуйте фиксированные поля или JSON, уменьшайте повторные объяснения. - Разделите модели: классификация, извлечение и переписывание — на лёгкой модели, сложные рассуждения — на более мощной.
- Оцените пакетную обработку: задачи без требования реального времени ставьте в очередь на другой ценовой уровень.
- Мониторьте и оповещайте: смотрите расход по проектам, моделям и сценариям, задайте лимиты бюджета и напоминания о балансе.
При обратном порядке типичный результат такой: модель заменена на более дешёвую, но вход не оптимизирован и кэш не срабатывает — счёт почти не снизился, а качество уже упало.
Частые вопросы
Mistral API считает по числу вызовов или по токенам?
Языковые модели считаются по входным и выходным токенам, а не по числу вызовов. OCR, транскрипция и синтез речи используют собственные единицы — страницы, минуты или символы; точные правила — на официальной странице цен.
Почему с ростом контекста счёт растёт быстрее?
Потому что каждый раунд заново отправляет историю, и входные токены накапливаются по раундам. Даже если новый вопрос короткий, без обрезки истории стоимость продолжает расти.
Почему кэш входа не срабатывает?
Частая причина — нестабильный префикс: метка времени, случайный ID или данные пользователя в начале, либо перестановка инструментов и документов при каждом запросе. Перенесите изменяемое содержимое в конец и понаблюдайте.
Платны ли повторные запросы?
Зависит от того, произошёл сбой до или после тарификации, а также от текущих правил счёта. В коде ограничивайте повторы, используйте задержку и делайте операции записи идемпотентными, чтобы не тратить дважды.
Что делать, если оценка не сходится со счётом?
Проверьте, не забыты ли история сообщений, определения инструментов, повторы, промахи кэша и разница пакетного уровня, затем сопоставьте журнал расхода по ID запросов. Если объяснить не удаётся, разбирайте вместе детализацию счёта и записи расхода.
Что дальше
Создайте тестовый ключ в ZSQH AI Gateway, прогоните реальные задачи в течение недели, зафиксируйте вход, выход и попадания в кэш, затем пересчитайте бюджет по ценам на модели. Доступность моделей и цены определяются страницей цен.
Полезные материалы:
