Что такое формат TOON?

TOON (Token-Oriented Object Notation) — это компактный, читаемый формат сериализации данных, специально разработанный для больших языковых моделей (LLM). В отличие от JSON, который повторяет имена полей для каждого объекта в массиве, TOON объявляет имена полей один раз, а затем передаёт данные в виде строк — аналогично CSV, но с явной структурой. Такой дизайн обычно снижает использование токенов на 30-60% по сравнению с форматированным JSON, особенно для однородных массивов объектов. TOON сочетает структуру с отступами YAML для вложенных объектов с табличной эффективностью CSV, оптимизированную для контекстов LLM, где важна стоимость токенов.

Что такое XML?

XML (eXtensible Markup Language) — это широко используемый язык разметки для кодирования документов в формате, который является одновременно читаемым человеком и машиной. XML использует теги для определения элементов и атрибутов, создавая иерархическую древовидную структуру. Он обычно используется для конфигурационных файлов, обмена данными между системами, веб-сервисов (SOAP), форматов документов (Office Open XML) и RSS-лент. Хотя XML многословен и явен, он обеспечивает мощные возможности валидации и поддерживает сложные вложенные структуры.

Описание инструмента

Этот конвертер преобразует данные между форматами TOON и XML в обоих направлениях, используя JSON как промежуточный формат. Процесс конвертации: TOON ↔ JSON ↔ XML. Такой подход обеспечивает надёжную конвертацию за счёт использования проверенных библиотек для каждого этапа преобразования. Конвертируйте токен-эффективные данные TOON в стандартную XML-разметку для систем, требующих XML-ввод, или преобразуйте XML-данные в компактный формат TOON для снижения использования токенов в LLM-приложениях.

Примеры

Конвертация TOON в XML:

Входные данные (TOON):

users[2]{id,name,role}:
  1,Alice,admin
  2,Bob,user

Вывод (XML):

<?xml version="1.0" encoding="UTF-8"?>
<root>
  <users>
    <id>1</id>
    <name>Alice</name>
    <role>admin</role>
  </users>
  <users>
    <id>2</id>
    <name>Bob</name>
    <role>user</role>
  </users>
</root>

Конвертация XML в TOON:

Входные данные (XML):

<?xml version="1.0" encoding="UTF-8"?>
<order>
  <id>ORD-456</id>
  <customer>John Doe</customer>
  <total>99.99</total>
</order>

Вывод (TOON):

order:
  id: ORD-456
  customer: John Doe
  total: 99.99

Возможности

  • Двунаправленная конвертация между TOON и XML с полным сохранением данных
  • JSON как промежуточный формат обеспечивает надёжную конвертацию с использованием проверенных библиотек
  • Обработка сложных структур включая вложенные элементы, атрибуты и массивы
  • Автоматическое определение формата и оптимальная стратегия конвертации
  • Сохранение иерархии данных с поддержкой отношений родитель-потомок
  • Типо-осознанная конвертация с сохранением чисел, булевых значений и строк
  • Конвертация в реальном времени с мгновенными результатами
  • Подсветка синтаксиса для форматов TOON и XML

Сценарии использования

  1. Интеграция с устаревшими системами - Конвертация современных данных TOON в формат XML для совместимости со старыми корпоративными системами, требующими XML-ввод
  2. Трансформация данных API - Преобразование XML-ответов API в токен-эффективный формат TOON перед отправкой в LLM для обработки и анализа
  3. Конвертация конфигурационных файлов - Преобразование XML-конфигураций в формат TOON для снижения использования токенов при использовании LLM для управления инфраструктурой
  4. Обработка документов - Преобразование XML-документов (RSS-ленты, SOAP-ответы, документы Office) в TOON для эффективного анализа на основе LLM
  5. Миграция данных - Конвертация данных между системами, использующими разные форматы, с TOON в качестве токен-эффективного промежуточного представления

Процесс конвертации

TOON в XML:

  1. Парсинг формата TOON в объект JavaScript (используя @toon-format/toon decode)
  2. Конвертация объекта JavaScript в XML-разметку (используя xml2js builder)
  3. Вывод форматированного XML с правильными отступами

XML в TOON:

  1. Парсинг XML-разметки в объект JavaScript (используя xml2js parser)
  2. Конвертация объекта JavaScript в формат TOON (используя @toon-format/toon encode)
  3. Вывод компактного представления TOON

Примечания о структуре XML

При конвертации из TOON в XML:

  • Ключи корневого объекта становятся XML-элементами
  • Массивы создают несколько элементов с одинаковым именем тега
  • Табличные массивы TOON расширяются в отдельные XML-элементы
  • Свойства объектов становятся дочерними элементами
  • Значения преобразуются в текстовое содержимое

При конвертации из XML в TOON:

  • XML-элементы становятся ключами объектов
  • Повторяющиеся элементы становятся массивами
  • Атрибуты объединяются с содержимым элемента
  • Текстовое содержимое становится строковыми значениями
  • Пустые элементы становятся пустыми строками или null

Соображения о форматах

Многословность XML:

  • XML по своей природе многословен с открывающими/закрывающими тегами
  • Каждый элемент требует как начального, так и конечного тега
  • Атрибуты добавляют дополнительные символы
  • Хорошо подходит для разметки документов и валидации

Эффективность TOON:

  • Значительно более компактен для структурированных данных
  • Идеален для табличных данных с повторяющимися структурами
  • Снижает использование токенов на 30-60% по сравнению с JSON
  • Оптимизирован для потребления LLM

Компромиссы:

  • XML поддерживает атрибуты и смешанное содержимое (текст + элементы)
  • TOON превосходит в однородных структурах данных
  • XML имеет более сильные возможности валидации
  • TOON обладает лучшей токен-эффективностью для LLM

Качество конвертации

Промежуточный формат JSON обеспечивает:

  • Целостность данных - отсутствие потери данных при конвертации
  • Сохранение типов - числа, булевы значения и null сохраняются
  • Согласованность структуры - вложенные отношения сохраняются
  • Надёжное преобразование - использование проверенных библиотек (xml2js и @toon-format/toon)
  • Обработка ошибок - чёткие сообщения об ошибках для невалидного ввода