Dev48
ЯЗЫК
  • О нас
  • Услуги
  • Индустрии
  • Технологии
  • Статьи
  • Контакты
Забронировать звонок
    Главная/Статьи/Skrytyy nalog na tokeny v json shemah
Dev48

© 2026 · All rights reserved.

Скрытый «налог на токены» в JSON-схемах

Источник: Vonage API Developer

Скрытый «налог на токены» в JSON-схемах

Источник: Vonage API Developer

Мета-описание: Узнайте, как JSON-схемы увеличивают потребление токенов LLM, сравните провайдеров и сократите расходы на ИИ в продакшене.

25 сентября 2026 г.

Введение

Структурированный вывод стал одним из самых надежных способов интеграции больших языковых моделей (LLM) в производственные системы. Вы передаете JSON-схему в вызов API LLM, и ответ гарантированно соответствует этой структуре. Никаких ошибок парсинга, никаких некорректных ответов, никакой логики повторных попыток.

JSON-схемы увеличивают потребление входных токенов, поскольку схема включается в каждый запрос, отправляемый модели. В зависимости от провайдера, эти накладные расходы варьируются от почти незначительных до более чем десятикратного размера исходного промпта.

В этой статье вы увидите результаты измерений для различных моделей и узнаете, как уменьшить эти накладные расходы.

Краткий ликбез для тех, кто не знаком с биллингом LLM: языковые модели обрабатывают текст как токены — фрагменты слов, примерно по 3-4 символа каждый. Вы платите за токен, как за то, что отправляете (входные токены), так и за то, что получаете обратно (выходные токены). Когда что-то незаметно добавляет токены к вашему вызову API, это напрямую увеличивает ваш счет.

Центр компетенций по ИИ (CoE) в Vonage внедрил структурированный вывод во все наши конвейеры: анализ тональности, извлечение сущностей и оценку взаимодействия с клиентами. Улучшение опыта разработчиков было мгновенным.

Однако во время тестирования мы заметили неожиданную закономерность. Потребление токенов было стабильно выше, чем должны были давать одни только наши промпты — недостаточно, чтобы вызвать оповещение, но достаточно, чтобы заметить. Мы запускали короткие аналитические промпты, примерно по 100 токенов каждый, через модели с прикрепленными JSON-схемами. Размер промпта был тривиальным, так откуда брались лишние токены? Мы провели эксперимент, чтобы выяснить это.

Количественная оценка накладных расходов схемы

Документация по структурированному выводу объясняет, как его использовать, но не говорит о его стоимости. У каждого провайдера есть страница «Structured Output», описывающая параметры API. Ни один из них не объясняет, что происходит с количеством токенов, когда вы прикрепляете схему.

Мы хотели ответить на один простой вопрос: когда вы передаете JSON-схему в LLM, сколько дополнительных входных токенов это на самом деле добавляет?

Настройка была намеренно минимальной. Тот же промпт, та же системная инструкция, та же температура. Единственной переменной было наличие прикрепленной схемы и ее сложность.

Мы протестировали пять схем, от тривиально простых до производственного уровня. Минимальная схема состояла всего из одного поля (88 символов JSON):

Далее мы увеличивали сложность:

  • Простая — три поля с ограничением enum (237 символов)

Простая — три поля с ограничением enum (237 символов)

  • Средняя — вложенный объект с массивами (358 символов)

Средняя — вложенный объект с массивами (358 символов)

  • Сложная — массивы объектов с enum (555 символов)

Сложная — массивы объектов с enum (555 символов)

  • Очень сложная — глубокая вложенность, несколько массивов, логические значения, enum (1730 символов)

Очень сложная — глубокая вложенность, несколько массивов, логические значения, enum (1730 символов)

Сам промпт представлял собой короткое взаимодействие со службой поддержки, потребляющее около 99 токенов в токенизаторе Gemini и 121 в Claude. Разные токенизаторы разбивают один и тот же текст по-разному, что объясняет базовый разрыв между провайдерами. Мы сделали промпт намеренно маленьким, потому что хотели увидеть накладные расходы в изоляции, а не скрытыми под длинным контекстом.

Мы запустили его на трех моделях: Gemini 2.5 Flash, Gemini 3.5 Flash и Claude Haiku 4.5.

Сколько накладных расходов добавляет JSON-схема?

На графике ниже показано общее количество входных токенов, о которых сообщала каждая модель для всех пяти уровней сложности схемы. Серые базовые полосы представляют тот же промпт, отправленный без какой-либо схемы.

Результаты показывают четкую закономерность. Как и ожидалось, увеличение сложности приводит к увеличению потребления токенов во всех трех моделях. Но есть один явный лидер: Gemini 2.5 Flash остается близким к базовому уровню во всех случаях. Для глубоко вложенной схемы Gemini 2.5 Flash использует 186 токенов по сравнению с 1189 у Claude Haiku 4.5.

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

Почему короткие промпты стоят дороже

По отдельности токены стоят дешево. Но картина затрат меняется в зависимости от вашего варианта использования.

Если вы используете структурированный вывод для длинных документов — скажем, более 5000 входных токенов — накладные расходы незначительны. Несколько сотен дополнительных токенов поверх 5000 — это погрешность округления.

Но большинство производственных вызовов со структурированным выводом не имеют длинного контекста. Это короткие аналитические задачи:

  • Классифицировать это сообщение клиента (тональность, намерение, срочность)

Классифицировать это сообщение клиента (тональность, намерение, срочность)

  • Извлечь сущности из этого предложения

Извлечь сущности из этого предложения

  • Оценить это взаимодействие по пяти параметрам

Оценить это взаимодействие по пяти параметрам

  • Направить этот тикет в нужный отдел

Направить этот тикет в нужный отдел

Эти промпты обычно составляют 50-500 токенов. В таком масштабе накладные расходы становятся основным фактором вашего счета за входные токены.

Рассмотрим схему средней сложности на Claude Haiku 4.5 с промптом на 100 токенов:

  • Без схемы: 121 входной токен

Без схемы: 121 входной токен

  • Со схемой: 415 входных токенов

Со схемой: 415 входных токенов

  • Накладные расходы: 71% от общего счета за входные данные

Накладные расходы: 71% от общего счета за входные данные

Вы платите почти в 3,5 раза больше за входные токены, чем требует ваш фактический контент. Масштабируйте это на миллионы вызовов API в месяц, и это станет значимым фактором затрат.

Выбор правильной модели для структурированного вывода

Здесь становится интересно для всех, кто оценивает модели для производственных нагрузок.

При полезной нагрузке в 100 токенов со средней схемой:

Модель

Эффективный ввод

Цена за 1 млн токенов

Стоимость за 1 млн вызовов

Gemini 2.5 Flash

124 токена

$0.30

$37.20

Gemini 3.5 Flash

264 токена

$1.50

$396.00

Claude Haiku 4.5

415 токенов

$0.80

$332.00

  • Цены по состоянию на июль 2026 года

Цены по состоянию на июль 2026 года

Gemini 2.5 Flash примерно в девять раз дешевле, чем Claude Haiku, и в одиннадцать раз дешевле, чем Gemini 3.5 Flash для этого конкретного случая использования. Не только из-за базовой цены, но и из-за того, как каждая модель обрабатывает схему внутри себя.

Базовые ценовые коэффициенты (Haiku в 2,7 раза дороже, чем 2.5 Flash за токен) усиливаются накладными расходами до гораздо больших различий в эффективной стоимости.

Когда накладные расходы перестают иметь значение

Накладные расходы — это фиксированная стоимость за вызов. По мере роста вашей входной нагрузки они уменьшаются:

  • При 500 токенах (короткое сообщение клиента с контекстом) — средняя схема добавляет 37% на Haiku

При 500 токенах (короткое сообщение клиента с контекстом) — средняя схема добавляет 37% на Haiku

  • При 2000 токенах (полная расшифровка разговора) — до 13%

При 2000 токенах (полная расшифровка разговора) — до 13%

  • При 5000 токенах (резюме документа или фрагмент контекста RAG) — менее 6%

При 5000 токенах (резюме документа или фрагмент контекста RAG) — менее 6%

  • При 10 000 токенов (длинный документ или история из нескольких диалогов) — примерно 3%

При 10 000 токенов (длинный документ или история из нескольких диалогов) — примерно 3%

Если ваша рабочая нагрузка включает в себя обобщение документов, выполнение RAG по извлеченным фрагментам или анализ полных транскриптов разговоров, накладные расходы по сути ничтожны. Это в первую очередь касается рабочих нагрузок с большим объемом и короткими промптами, таких как классификация, маршрутизация и извлечение сущностей.

Почему JSON-схемы увеличивают потребление токенов

Когда вы передаете JSON-схему через API, модели обрабатывают ее в основном двумя способами:

Компактное кодирование — схема обрабатывается эффективно, возможно, как специальные токены или сжатая инструкция. Gemini 2.5 Flash, по-видимому, кодирует схемы именно так. Накладные расходы минимальны и медленно растут вместе с размером схемы.

Подробное расширение — схема преобразуется в инструкции на естественном языке, которые явно прописывают каждое ограничение. Именно это, судя по количеству токенов, делают Gemini 3.5 Flash и Claude Haiku, и это объясняет, почему их накладные расходы растут примерно линейно в зависимости от количества символов в схеме.

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

Снижение накладных расходов

Вот как их уменьшить:

  • Делайте схемы минималистичными. Удаляйте поля, которые вы не используете в своем коде. Упрощайте вложенные структуры, где иерархия семантически не обязательна. Размещайте описания и примеры в своем промпте, а не в самом определении схемы. Схема, уменьшенная с 1730 до 555 символов, экономит вам около 650 токенов за вызов в Claude. В Claude накладные расходы на схему варьируются от 0,6 до 1,6 дополнительных токенов на символ JSON-схемы, причем меньшие схемы несут пропорционально большие накладные расходы. В Gemini 3.5 Flash этот показатель ниже — примерно 0,3–0,5 токена на символ, — но при больших объемах он все равно накапливается.

Делайте схемы минималистичными. Удаляйте поля, которые вы не используете в своем коде. Упрощайте вложенные структуры, где иерархия семантически не обязательна. Размещайте описания и примеры в своем промпте, а не в самом определении схемы. Схема, уменьшенная с 1730 до 555 символов, экономит вам около 650 токенов за вызов в Claude. В Claude накладные расходы на схему варьируются от 0,6 до 1,6 дополнительных токенов на символ JSON-схемы, причем меньшие схемы несут пропорционально большие накладные расходы. В Gemini 3.5 Flash этот показатель ниже — примерно 0,3–0,5 токена на символ, — но при больших объемах он все равно накапливается.

  • Подбирайте модель под тип нагрузки. Если ваша рабочая нагрузка в продакшене — это в основном структурированный вывод с короткими промптами (менее 500 токенов фактического контента), накладные расходы должны стать частью критериев выбора модели. Если ваши входные данные длинные (более 2000 токенов), накладные расходы ничтожны. Выбирайте, основываясь на качестве и задержке.

Подбирайте модель под тип нагрузки. Если ваша рабочая нагрузка в продакшене — это в основном структурированный вывод с короткими промптами (менее 500 токенов фактического контента), накладные расходы должны стать частью критериев выбора модели. Если ваши входные данные длинные (более 2000 токенов), накладные расходы ничтожны. Выбирайте, основываясь на качестве и задержке.

  • Рассмотрите возможность отказа от схемы в простых случаях. Для одной метки классификации или логического флага хорошо составленный промпт, который запрашивает JSON напрямую, не требует никаких накладных расходов. Вы жертвуете некоторой надежностью ради экономии средств — это оправдано, когда структура тривиальна.

Рассмотрите возможность отказа от схемы в простых случаях. Для одной метки классификации или логического флага хорошо составленный промпт, который запрашивает JSON напрямую, не требует никаких накладных расходов. Вы жертвуете некоторой надежностью ради экономии средств — это оправдано, когда структура тривиальна.

  • Используйте пакетную обработку, где это возможно. Накладные расходы — это фиксированная стоимость за вызов. Обработка 10 элементов за один вызов оплачивает их один раз вместо десяти.

Используйте пакетную обработку, где это возможно. Накладные расходы — это фиксированная стоимость за вызов. Обработка 10 элементов за один вызов оплачивает их один раз вместо десяти.

  • Измеряйте их. Выполните один и тот же вызов со схемой и без нее. Разница во входных токенах — это ваши скрытые расходы. Умножьте на объем вызовов и цену за токен. Эта цифра должна быть в вашей модели затрат.

Измеряйте их. Выполните один и тот же вызов со схемой и без нее. Разница во входных токенах — это ваши скрытые расходы. Умножьте на объем вызовов и цену за токен. Эта цифра должна быть в вашей модели затрат.

Заключение

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

Методологическое примечание

В экспериментах, описанных в этой статье, использовались идентичные промпты для всех моделей и условий:

  • Модели Gemini тестировались через Vertex AI REST API (us-central1 для 2.5 Flash, глобально для 3.5 Flash)

Модели Gemini тестировались через Vertex AI REST API (us-central1 для 2.5 Flash, глобально для 3.5 Flash)

  • Claude Haiku 4.5 тестировался через AWS Bedrock

Claude Haiku 4.5 тестировался через AWS Bedrock

  • Температура была установлена на 0.0 для всех запусков

Температура была установлена на 0.0 для всех запусков

  • Было протестировано пять уровней сложности схем, каждый из которых запускался как в контрольном режиме (без схемы), так и в режиме со схемой

Было протестировано пять уровней сложности схем, каждый из которых запускался как в контрольном режиме (без схемы), так и в режиме со схемой

  • Количество токенов соответствует данным API использования каждого провайдера

Количество токенов соответствует данным API использования каждого провайдера

← Все статьи

Ещё в разделе «Телеком и сети»

Все →
Soniox TTS теперь доступен для Telnyx Voice AI
Telnyx

Soniox TTS теперь доступен для Telnyx Voice AI

Очистка и проверка номеров телефонов для электронной коммерции
Vonage API Platform

Очистка и проверка номеров телефонов для электронной коммерции

Пресс-релизы
SES

Пресс-релизы

Пресс-релизы
SES

Пресс-релизы

Пресс-релизы
SES

Пресс-релизы

От подиума к реальности: итоги AI Fashion Hackathon
Vonage API Platform

От подиума к реальности: итоги AI Fashion Hackathon

Ещё от Vonage API Platform

Очистка и проверка номеров телефонов для электронной коммерции
Vonage API Platform

Очистка и проверка номеров телефонов для электронной коммерции

От подиума к реальности: итоги AI Fashion Hackathon
Vonage API Platform

От подиума к реальности: итоги AI Fashion Hackathon

Добавление инструментов и перевода на оператора в голосовой агент Vonage + Deepgram
Vonage API Platform

Добавление инструментов и перевода на оператора в голосовой агент Vonage + Deepgram

Знакомьтесь с новыми медицинскими ИИ-стартапами, присоединившимися к Vonage
Vonage API Platform

Знакомьтесь с новыми медицинскими ИИ-стартапами, присоединившимися к Vonage