Стоимость токенов JSON-режима и схем
Обновлено September 1, 2026 · впервые опубликовано September 1, 2026
Просьба вернуть модели структурированный вывод выглядит как выбор формата. На счёте это выбор объёма, и он сказывается сразу в трёх местах.
Схема — входная стоимость каждого запроса
Описание формата ответа или определение инструмента сериализуются в запрос. Скромная схема — это дюжина полей, описание у каждого, пара вложенных объектов — несколько сотен токенов. Это немного, пока не умножить на каждый вызов, каждый ход и на всё время жизни функции. Схема в 400 токенов на миллион вызовов — это 400 миллионов входных токенов, которые вы платите за описание формы, которая никогда не меняется.
Хуже того, в наивных реализациях схема обычно стоит после изменчивой части промпта, что ломает закэшированный префикс. Тогда схема оплачивается полной ценой каждый раз и сводит на нет скидку на всё, что идёт перед ней.
Синтаксис — выходная стоимость
Каждая фигурная скобка, кавычка, запятая и имя поля в ответе — это сгенерированный токен, который оплачивается по тарифу вывода. Длинные имена полей — постоянная повторяющаяся плата: customer_shipping_address_line_one стоит больше, навсегда, чем addr1. Глубоко вложенные объекты платят за собственный каркас. Для коротких ответов, завёрнутых в большую оболочку, структура может реально превышать содержимое.
Повторы — самая дорогая часть
Constrained decoding у крупных провайдеров делает нарушения схемы редкими, но ошибки валидации всё равно случаются: поле, которое модель не может честно заполнить, перечисление без правильного ответа, схема, неоднозначная для читателя. Каждая ошибка стоит полного повтора: все входные токены снова, все выходные токены снова, плюс задержка. Доля невалидных ответов в 2% на высоконагруженном эндпоинте — это 2% роста стоимости без какой-либо отдачи.
Что делать на практике
Кладите схему в стабильный префикс, чтобы она кэшировалась, и держите её одинаковой между вызовами. Запрашивайте только поля, которые используете: лишние поля оплачиваются дважды — в схеме и в ответе. Предпочитайте короткие имена полей и плоские структуры. Если ответ — одно значение, не оборачивайте его в объект вообще. И измеряйте долю ошибок валидации: это единственная часть всего этого, которая — чистые потери.
Связанные материалы
По теме
Хотите применить это к своему стеку? Принесите счета провайдеров, логи шлюза и ключевые рабочие процессы — мы определим драйверы затрат и пути экономии. Заказать бесплатный аудит →