18 điểm bởi xguru 2025-11-19 | 3 bình luận | Chia sẻ qua WhatsApp
  • Token-Oriented Object Notation
  • Định dạng tuần tự hóa được thiết kế để giảm mức sử dụng token khi đưa vào LLM
    • Biểu diễn dữ liệu JSON không mất mát, đồng thời đảm bảo hiệu quả token và tính dễ đọc
  • Cấu trúc được tối ưu cho mảng đối tượng đồng nhất, loại bỏ các khóa lặp lại để mang lại mức tiết kiệm token 30~60%
    • Định dạng lai kết hợp cấu trúc thụt lề của YAML và dạng bảng của CSV
    • Với dữ liệu có cấu trúc lồng nhau sâu hoặc không đồng nhất, JSON hiệu quả hơn
  • Bao gồm thông tin cấu trúc tường minh để LLM có thể phân tích cú pháp và kiểm chứng dữ liệu một cách ổn định
    • Cải thiện khả năng nhận biết cấu trúc bằng cách ghi rõ độ dài mảng ([N]) và định nghĩa trường ({id,name,role})
  • Cú pháp ngắn gọn với thiết kế tối giản, loại bỏ ngoặc, dấu ngoặc kép và dấu câu không cần thiết
    • Biểu diễn phân cấp dựa trên thụt lề, hỗ trợ luồng dữ liệu theo từng dòng tương tự CSV
  • Hỗ trợ chuyển đổi hai chiều giữa JSON ↔ TOON thông qua công cụ CLI
    • Cung cấp các tùy chọn như tự động nhận diện định dạng, chỉ định dấu phân cách (,, \t, |), xuất thống kê mức tiết kiệm token, v.v.
  • Cấu hình API
    • Thực hiện tuần tự hóa JSON bằng encode() và giải tuần tự hóa bằng decode()
    • Có thể chỉ định thụt lề, dấu phân cách, ký hiệu độ dài (#) qua tùy chọn
  • Kết quả benchmark cho thấy mức tiết kiệm token trung bình 21~60% so với JSON, đạt độ chính xác truy vấn LLM 73.9%
    • Dù hơi lớn hơn CSV, tính năng kiểm chứng cấu trúc giúp nâng cao độ tin cậy của LLM
  • Quy tắc định dạng
    • Chuỗi chỉ được đặt trong dấu ngoặc kép khi cần; nếu chứa dấu phân cách thì sẽ tự động được trích dẫn
    • Số, boolean, ngày tháng, v.v. được chuyển đổi sang dạng thân thiện với LLM
  • Cung cấp nhiều bản triển khai ngôn ngữ
    • Chính thức: Python, Rust (đang phát triển)
    • Cộng đồng: Go, Java, Swift, C++, .NET, Ruby, v.v.

3 bình luận

 
wedding 2025-11-20

Tôi đang dùng function calling, chắc phải thử một lần mới được.

 
princox 2025-11-19

Xem một vài ví dụ thì có vẻ khi bỏ khoảng trắng, định dạng JSON giảm số lượng token tốt hơn nhiều.. tôi vẫn chưa rõ lắm. Không biết đây có phải là một định dạng đáng để dùng nghiêm túc hay không.

 
laeyoung 2025-11-19

So sánh độ chính xác theo từng mô hình

  • Gemini 2.5 Flash: TOON 87.6% so với JSON 77.0%
  • GPT-5 Nano: TOON 90.9% so với JSON 89.0%
  • Claude Haiku 4.5: TOON 59.8% so với JSON 57.4%

Nếu chỉ tin vào kết quả benchmark thì có vẻ không có lý do gì để không dùng, vì lượng token giảm mà độ chính xác không bị giảm.