Co to jest format TOON?

TOON (Token-Oriented Object Notation) jest zwartym, czytelnym dla człowieka formatem serializacji danych, zaprojektowanym specjalnie dla dużych modeli językowych (LLM). W przeciwieństwie do JSON, który powtarza nazwy pól dla każdego obiektu w tablicy, TOON deklaruje nazwy pól raz, a następnie przesyła dane w wierszach — podobnie jak CSV, ale ze wyraźną strukturą. Projekt ten zazwyczaj zmniejsza zużycie tokenów o 30‑60 % w porównaniu do sformatowanego JSON, szczególnie przy jednorodnych tablicach obiektów. TOON łączy strukturę opartą na wcięciach znaną z YAML dla zagnieżdżonych obiektów z efektywnością tabelaryczną CSV, zoptymalizowaną pod kątem kontekstów LLM, w których koszt tokenów ma znaczenie.

Co to jest XML?

XML (eXtensible Markup Language) jest powszechnie używanym językiem znaczników do kodowania dokumentów w formacie czytelnym zarówno dla ludzi, jak i maszyn. XML używa znaczników do definiowania elementów i atrybutów, tworząc hierarchiczną strukturę drzewa. Jest często wykorzystywany w plikach konfiguracyjnych, wymianie danych między systemami, usługach internetowych (SOAP), formatach dokumentów (Office Open XML) oraz kanałach RSS. Choć XML jest rozbudowany i explicite opisowy, zapewnia silne możliwości walidacji i obsługuje złożone, zagnieżdżone struktury.

Opis narzędzia

Ten konwerter przekształca dane dwukierunkowo między formatami TOON i XML, używając JSON jako formatu pośredniego. Proces konwersji wygląda następująco: TOON ↔ JSON ↔ XML. Takie podejście zapewnia niezawodną konwersję dzięki wykorzystaniu dobrze znanych bibliotek dla każdego etapu przekształcenia. Konwertuj tokenowo wydajne dane TOON na standardowy znacznik XML dla systemów wymagających wejścia w formacie XML lub przekształcaj dane XML do zwartego formatu TOON, aby zmniejszyć zużycie tokenów w aplikacjach LLM.

Przykłady

Konwersja TOON do XML:

Wejście (TOON):

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

Wyjście (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>

Konwersja XML do TOON:

Wejście (XML):

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

Wyjście (TOON):

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

Funkcje

  • Dwukierunkowa konwersja między TOON a XML z pełnym zachowaniem danych
  • Format pośredni JSON zapewnia niezawodną konwersję przy użyciu sprawdzonych bibliotek
  • Obsługa złożonych struktur w tym zagnieżdżonych elementów, atrybutów i tablic
  • Automatyczne wykrywanie formatu i optymalna strategia konwersji
  • Zachowuje hierarchię danych utrzymując relacje rodzic‑dziecko
  • Konwersja świadoma typów zachowująca liczby, wartości logiczne i ciągi znaków
  • Konwersja w czasie rzeczywistym z natychmiastowymi wynikami
  • Podświetlanie składni dla formatów TOON i XML

Przypadki użycia

  1. Integracja z systemami legacy – Konwertuj nowoczesne dane TOON do formatu XML w celu kompatybilności ze starszymi systemami korporacyjnymi, które wymagają wejścia w formacie XML
  2. Transformacja danych API – Przekształcaj odpowiedzi API w formacie XML do tokenowo wydajnego formatu TOON przed wysłaniem do LLM w celu przetwarzania i analizy
  3. Konwersja plików konfiguracyjnych – Konwertuj pliki konfiguracyjne XML do formatu TOON, aby zmniejszyć zużycie tokenów przy użyciu LLM do zarządzania infrastrukturą
  4. Przetwarzanie dokumentów – Przekształcaj dokumenty XML (kanały RSS, odpowiedzi SOAP, dokumenty Office) do TOON w celu efektywnej analizy opartej na LLM
  5. Migracja danych – Konwertuj dane między systemami używającymi różnych formatów, przy czym TOON pełni rolę tokenowo wydajnej reprezentacji pośredniej

Proces konwersji

TOON do XML:

  1. Parsuj format TOON do obiektu JavaScript (przy użyciu dekodowania @toon-format/toon)
  2. Konwertuj obiekt JavaScript do znaczników XML (przy użyciu budowniczego xml2js)
  3. Wyświetl sformatowany XML z odpowiednim wcięciem

XML do TOON:

  1. Parsuj znaczniki XML do obiektu JavaScript (przy użyciu parsera xml2js)
  2. Konwertuj obiekt JavaScript do formatu TOON (przy użyciu kodowania @toon-format/toon)
  3. Wyświetl zwartą reprezentację TOON

Uwagi dotyczące struktury XML

Podczas konwersji z TOON do XML:

  • Klucze obiektu głównego stają się elementami XML
  • Tablice tworzą wiele elementów o tej samej nazwie znacznika
  • Tablicowe tablice TOON rozwijają się do poszczególnych elementów XML
  • Właściwości obiektu stają się elementami potomnymi
  • Wartości są konwertowane na treść tekstową

Podczas konwersji z XML do TOON:

  • Elementy XML stają się kluczami obiektu
  • Powtarzające się elementy stają się tablicami
  • Atrybuty są łączone z zawartością elementu
  • Zawartość tekstowa staje się wartościami typu string
  • Puste elementy stają się pustymi ciągami znaków lub null

Rozważania dotyczące formatu

Rozbudowanie XML:

  • XML jest z natury rozbudowany, wymaga tagów otwierających i zamykających
  • Każdy element wymaga zarówno tagu początkowego, jak i końcowego
  • Atrybuty dodają dodatkowe znaki
  • Dobrze nadaje się do znaczników dokumentów i walidacji

Efektywność TOON:

  • Znacznie bardziej zwarty dla danych strukturalnych
  • Idealny dla danych tabelarycznych z powtarzającymi się strukturami
  • Zmniejsza zużycie tokenów o 30‑60 % w porównaniu do JSON
  • Zoptymalizowany pod kątem konsumpcji przez LLM

Kompromisy:

  • XML obsługuje atrybuty i mieszane treści (tekst + elementy)
  • TOON wyróżnia się przy jednolitych strukturach danych
  • XML posiada silniejsze możliwości walidacji
  • TOON ma lepszą efektywność tokenową dla LLM

Jakość konwersji

Format pośredni JSON zapewnia:

  • Integralność danych – brak utraty danych podczas konwersji
  • Zachowanie typów – liczby, wartości logiczne i null są zachowane
  • Spójność struktury – zagnieżdżone relacje zachowane
  • Niezawodna transformacja – przy użyciu sprawdzonych bibliotek (xml2js i @toon-format/toon)
  • Obsługa błędów – czytelne komunikaty o błędach przy nieprawidłowym wejściu