Как конвертировать JSON в TOON
- Вставьте JSON или откройте файл. Результат в формате TOON и оценка сэкономленных токенов появятся сразу.
- Выберите разделитель: запятая (по умолчанию), табуляция или вертикальная черта. С табуляцией токенов часто требуется ещё меньше.
- Скопируйте TOON в свой промпт. Чтобы прочитать ответ модели в формате TOON, переключите направление на TOON → JSON.
TOON vs JSON: пример
Те же два пользователя в JSON:
{"users":[{"id":1,"name":"Ada","role":"admin"},{"id":2,"name":"Bob","role":"user"}]}
и в TOON:
users[2]{id,name,role}:1,Ada,admin2,Bob,user
Имена полей записываются один раз в заголовке, а не в каждом объекте, а кавычки, фигурные скобки и большая часть пунктуации исчезают. Для однородных массивов объектов — строк из базы данных, логов, результатов поиска, списков товаров — экономия велика: в нашем тесте со 100 записями о клиентах TOON занял примерно на 65% меньше токенов, чем форматированный JSON, и на 47% меньше, чем минифицированный. Маркер длины [2] к тому же позволяет модели и декодеру проверить, что ни одна строка не потерялась.
Формат TOON вкратце
| Данные | TOON |
|---|---|
| Поле объекта | name: Ada |
| Вложенный объект | address:, а за ним поля с отступом |
| Массив простых значений | tags[3]: red,green,blue |
| Массив объектов с одинаковыми ключами | users[2]{id,name}:, а за ним по одной строке на объект |
| Смешанные или вложенные массивы | items[2]:, а за ним элементы списка с - |
| Строки | без кавычек — кроме случаев, когда строка содержит разделитель, двоеточие, кавычки или скобки, имеет пробелы в начале или в конце либо похожа на число, true, false или null |
Когда JSON всё же лучше
- Глубоко вложенные или неоднородные данные — когда у объектов разные ключи или внутри есть вложенные объекты, TOON переходит на списки с отступами, и экономия сокращается или исчезает. На 20 записях, каждая из которых содержала вложенный адрес и список тегов, TOON всё ещё был на 34% меньше форматированного JSON, но на 12% больше минифицированного. Конвертер показывает оба сравнения для ваших данных.
- Машинные интерфейсы — API, function calling и structured outputs ожидают JSON.
- Привычность для модели — языковые модели видели гораздо больше JSON, чем TOON; прежде чем переходить, проверьте качество ответов на своих промптах.
- Крошечные объёмы данных — для нескольких значений разница пренебрежимо мала.
Число токенов оценивается как количество символов ÷ 4. Точные цифры зависят от токенизатора вашей модели, но относительная разница — хороший ориентир.
Часто задаваемые вопросы
Что такое TOON?
TOON (Token-Oriented Object Notation) — компактный и удобочитаемый способ записи модели данных JSON, созданный для промптов LLM. Он сочетает отступы в стиле YAML для объектов и строки в стиле CSV для однородных массивов.
TOON лучше, чем JSON?
Для передачи табличных или однородных данных языковой модели — обычно да: меньше токенов и явно указанные длины массивов. Для API, хранения данных и глубоко вложенных структур JSON остаётся лучшим выбором.
Как оценивается число токенов?
Инструмент делит количество символов на четыре — распространённое эмпирическое правило для английского текста и кода. Точное число зависит от токенизатора вашей модели.
Можно ли конвертировать TOON обратно в JSON?
Да. Переключите направление на TOON → JSON; декодер проверит объявленные длины массивов и укажет строку, в которой возникла проблема.