ما هو تنسيق TOON؟

TOON (Token-Oriented Object Notation) هو تنسيق تسلسل بيانات مضغوط وقابل للقراءة من قبل الإنسان، صُمم خصيصًا للنماذج اللغوية الكبيرة (LLMs). على عكس JSON، الذي يكرر أسماء الحقول لكل كائن في مصفوفة، يعلن TOON عن أسماء الحقول مرة واحدة ثم يبث البيانات في صفوف — مشابهًا لـ CSV لكن به بنية صريحة. هذا التصميم يقلل عادةً من استهلاك الرموز بنسبة 30‑60٪ مقارنةً بـ JSON المُنسق، خاصةً للمصفوفات المتجانسة من الكائنات. يجمع TOON بين بنية YAML القائمة على المسافات المتداخلة للكائنات المتداخلة وكفاءة CSV الجدولية، مُحسّنًا لسياقات LLM حيث تكاليف الرموز مهمة.

وصف الأداة

يحوّل هذا المحوّل البيانات بين صيغتي JSON و TOON باتجاهين. ما عليك سوى لصق بيانات JSON الخاصة بك لتوليد مخرجات TOON مضغوطة، أو تحويل TOON مرة أخرى إلى JSON قياسي. تستخدم الأداة مكتبة @toon-format/toon الرسمية لضمان التحويل الدقيق. يُعد TOON فعالًا بشكل خاص للمجموعات التي تحتوي على هياكل مكررة — مثل سجلات المستخدمين، سجلات المعاملات، استجابات API، أو أي بيانات جدولة — حيث يقلل تقليل عدد الرموز من استهلاك الموارد عند العمل مع LLMs.

أمثلة

إدخال JSON:

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

مخرجات TOON:

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

مثال على بنية متداخلة:

JSON يحتوي على كائنات متداخلة يتحول إلى تنسيق TOON مُنظم:

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

يصبح:

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

الميزات

  • تحويل ثنائي الاتجاه بين صيغتي JSON و TOON مع الحفاظ الكامل على الدقة
  • تقليل كبير في عدد الرموز (30‑60٪ أقل مقارنةً بـ JSON للمصفوفات المتجانسة)
  • الحفاظ على بنية البيانات بما في ذلك الكائنات المتداخلة، المصفوفات، والقيم الأولية
  • اكتشاف تنسيق تلقائي واستراتيجية ترميز مثلى
  • مخرجات قابلة للقراءة مع بنية جدولة واضحة للبيانات المتجانسة
  • تحويل آمن للنوع مع الحفاظ على الأعداد، القيم البوليانية، null، والسلاسل النصية بشكل صحيح
  • معالجة الحالات الطرفية بما في ذلك المصفوفات الفارغة، البنى المتداخلة، والأنواع المختلطة
  • تحويل فوري مع نتائج فورية أثناء الكتابة

حالات الاستخدام

  1. تحسين API للـ LLM – تقليل تكاليف الرموز عند إرسال بيانات منظمة إلى GPT أو Claude أو أي نموذج لغوي كبير آخر عبر تحويل حمولة JSON إلى تنسيق TOON قبل استدعاءات API
  2. تحفيزات تحليل البيانات – إعداد مجموعات البيانات لتحليل LLM بترميز أكثر كفاءة، مما يسمح بدمج مجموعات بيانات أكبر ضمن حدود السياق
  3. توليد بيانات منظمة – استخدام TOON في التحفيزات لطلب من LLM توليد بيانات جدولة أكثر كفاءة من JSON
  4. معالجة السجلات – تحويل سجلات التطبيقات أو بيانات التحليلات إلى تنسيق مضغوط للتحليل والتلخيص القائم على LLM
  5. إدارة التكوين – تحويل ملفات التكوين إلى تنسيق موفر للرموز عند استخدام LLM لإدارة البنية التحتية أو مهام DevOps

تفاصيل كفاءة الرموز

يحقق TOON توفيرًا كبيرًا في عدد الرموز من خلال عدة تحسينات:

  • عدم تكرار أسماء الحقول – يعلن عن الحقول مرة واحدة في الرأس بدلاً من تكرارها لكل كائن
  • حد أدنى من علامات الترقيم – يزيل الأقواس، الأقواس المعقوفة، والاقتباسات الزائدة حيثما يكون ذلك آمنًا
  • تنسيق جدولي – يستخدم صفوفًا شبيهة بـ CSV للمصفوفات المتجانسة من الكائنات
  • مرونة الفواصل – يدعم الفواصل (الافتراضية)، علامات التبويب، أو الأنابيب لتحقيق أفضل تجزئة للرموز

مثال مقارنة الرموز (باستخدام محلل رموز GPT‑5):

  • JSON (منسق): 100 سجل موظف ≈ 49,776 رمزًا
  • TOON: نفس البيانات ≈ 17,635 رمزًا (تخفيض بنسبة 64.6٪)
  • CSV: ≈ 15,583 رمزًا (الأكثر ضغطًا، لكنه يفتقر إلى البنية)

يوفر TOON أفضل توازن بين الضغوطية وسلامة البنية لتطبيقات LLM.

نظرة عامة على التنسيق

الكائنات: أزواج مفتاح‑قيمة بسيطة مع مسافات لتحديد التداخل

id: 123
name: Ada
active: true

المصفوفات: يُعلن عن الطول بين الأقواس، والمصفوفات الأولية تُكتب في سطر واحد

tags[3]: reading,gaming,coding

المصفوفات الجدولية: كائنات متجانسة تُنسق كجداول مع رؤوس الحقول

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

قواعد الاقتباس: تُقتبس السلاسل فقط عند الضرورة (عند احتواء الفواصل، النقطتين، أو تشبه أنواعًا أخرى)

ملاحظات التحويل

عند تحويل JSON إلى TOON:

  • تُستخدم الصيغة الجدولية تلقائيًا للمصفوفات المتجانسة من الكائنات
  • تُحافظ البنى المتداخلة على المسافات المناسبة
  • تُحول الأنواع غير المدعومة في JSON (undefined، functions) إلى null
  • تُحول التواريخ إلى سلاسل ISO
  • تُكتب الأعداد دون صيغة علمية

عند تحويل TOON إلى JSON:

  • يُحافظ على تنسيق JSON القياسي مع مسافة إزاحة 2 مسافة
  • يتحقق من طول المصفوفات وتناسق الحقول
  • يهرب الأحرف الخاصة بشكل صحيح
  • يحافظ على معلومات النوع (أعداد، بوليانات، null)