Mis on TOON vorming?

TOON (Token‑Oriented Object Notation) on kompaktne, inimesele loetav andmeserialiseerimise vorming, mis on loodud spetsiaalselt suurte keelemudelite (LLM‑de) jaoks. Erinevalt JSON‑ist, kus iga objektis massiivis korduvad väljanimed, deklareerib TOON väljanimed üks kord ja seejärel voogesitab andmeid ridadena – sarnaselt CSV‑le, kuid selge struktuuriga. See disain vähendab tavaliselt tokenite kasutust 30‑60 % võrreldes vormindatud JSON‑iga, eriti ühtsete objektide massiivide puhul. TOON ühendab YAML‑i taandridade põhise struktuuri sisemiste objektide jaoks CSV‑i tabelilise tõhususega, optimeeritud LLM‑i kontekstides, kus tokenikulud on olulised.

Tööriista kirjeldus

See konverter teisendab andmeid JSON‑i ja TOON‑i vormingute vahel kahesuunaliselt. Lihtsalt kleebi oma JSON‑andmed, et genereerida kompaktne TOON‑väljund, või muuda TOON tagasi tavapäraseks JSON‑iks. Tööriist kasutab ametlikku @toon-format/toon teeki, et tagada täpne teisendus. TOON on eriti tõhus andmekogude puhul, millel on korduvad struktuurid – näiteks kasutajakirjed, tehingulogid, API‑vastused või mis tahes tabelilised andmed – kus tokenite arvu vähendamine parandab tõhusust LLM‑idega töötamisel.

Näited

JSON‑sisend:

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

TOON‑väljund:

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

Sisemiste struktuuride näide

JSON, mis sisaldab sisemisi objekte, teisendatakse taandatud TOON‑vormingusse:

{
  "order": {
    "id": "ORD-456",
    "items": [
      { "sku": "A1", "qty": 2, "price": 19.99 },
      { "sku": "B2", "qty": 1, "price": 29.99 }
    ],
    "total": 69.97
  }
}

Saadud TOON‑väljund:

order:
  id: ORD-456
  items[2]{sku,qty,price}:
    A1,2,19.99
    B2,1,29.99
  total: 69.97

Funktsioonid

  • Kahesuunaline teisendus JSON‑i ja TOON‑i vormingute vahel, säilitades täieliku täpsuse
  • Oluliselt tokenite vähendamine (30‑60 % vähem tokenite võrreldes JSON‑iga ühtsete massiivide puhul)
  • Andmestruktuuri säilitamine, sealhulgas sisemised objektid, massiivid ja primitiivsed väärtused
  • Automaatne vormingu tuvastamine ja optimaalse kodeerimisstrateegia valik
  • Inimesele loetav väljund selge tabelilise struktuuriga ühtsete andmete jaoks
  • Tüübisõbralik teisendus, mis hoiab numbreid, booleane, nulli ja stringe õigesti
  • Erijuhtude käsitlemine, sealhulgas tühjad massiivid, sisemised struktuurid ja segatud tüübid
  • Reaalajas teisendus kohese tulemusega, kui kirjutad

Kasutusjuhtumid

  1. LLM‑API optimeerimine – Vähenda tokenikulutusi, kui saadad struktureeritud andmeid GPT‑le, Claude‑le või muudele LLM‑idele, teisendades JSON‑koormused TOON‑vormingusse enne API‑kõnesid
  2. Andmeanalüüsi promptid – Valmista andmekogusid LLM‑i analüüsiks efektiivsema kodeerimisega, võimaldades suuremaid andmekoguseid kontekstipiiridesse mahutada
  3. Struktureeritud andmete genereerimine – Kasuta TOON‑i promptides, et paluda LLM‑idel luua tabelilisi andmeid tõhusamalt kui JSON‑iga
  4. Logide töötlemine – Teisenda rakenduse logid või analüütikaandmed kompaktseks vorminguks LLM‑põhise analüüsi ja kokkuvõtte jaoks
  5. Konfiguratsiooni haldamine – Muuda konfiguratsioonifailid tokenite‑efektiivseks vorminguks, kui kasutad LLM‑e infrastruktuuri haldamise või DevOps‑ülesannete jaoks

Tokeni‑efektiivsuse üksikasjad

TOON saavutab märkimisväärse tokenite säästmise läbi mitmete optimeerimiste:

  • Väljanimed ei kordu – Deklareerib väljad üks kord päises, mitte iga objekti jaoks
  • Vähem kirjavahemärke – Eemaldab turvalisel juhul liigsed sulud, loogused ja jutumärgid
  • Tabeliline vorming – Kasutab CSV‑laadseid ridu ühtsete objektide massiivide jaoks
  • Eraldaja paindlikkus – Toetab koma (vaikimisi), tabulaatori või toru eraldajaid optimaalse tokeniseerimise jaoks

Tokenite võrdlusnäide (kasutades GPT‑5 tokenisaajat):

  • JSON (vormindatud): 100 töötaja kirjet ≈ 49 776 tokenit
  • TOON: Sama andmestik ≈ 17 635 tokenit (64,6 % vähendus)
  • CSV: ≈ 15 583 tokenit (kõige kompaktsem, kuid struktuuri puudub)

TOON pakub parimat tasakaalu kompaktse suuruse ja struktuurse terviklikkuse vahel LLM‑rakenduste jaoks.

Vormingu ülevaade

Objektid: Lihtsad võtme‑väärtuse paarid, taandridadega sisemiste elementide jaoks

id: 123
name: Ada
active: true

Massiivid: Pikkus deklareeritakse nurksulgudes, primitiivsed massiivid ühel real

tags[3]: reading,gaming,coding

Tabelilised massiivid: Ühtsed objektid vormindatud tabelitena väljanime päisega

items[2]{sku,qty,price}:
  A1,2,9.99
  B2,1,14.5

Jutumärgi reeglid: Stringid on jutumärkides ainult siis, kui see on vajalik (sisalduvad eraldajad, koolonid või näivad olevat muud tüüpi väärtused)

Teisendamise märkused

JSON‑st TOON‑iks teisendamisel

  • Ühtsed objektide massiivid kasutavad automaatselt tabelilist vormingut
  • Sisemised struktuurid säilitavad korrektse taandridade sügavuse
  • Mitte‑JSON tüübid (undefined, funktsioonid) teisendatakse null‑iks
  • Kuupäevad konverteeritakse ISO‑stringideks
  • Numbrid ei kasutata teaduslikku notatsiooni

TOON‑st JSON‑iks teisendamisel

  • Säilitab standardse JSON‑vormingu 2‑tühiku taandridadega
  • Kontrollib massiivi pikkusi ja väljanime järjepidevust
  • Puhastab erimärgid õigesti
  • Säilitab tüüpide teabe (numbrid, booleandid, null)