Cách chuyển JSON sang TOON
- Dán JSON hoặc mở file. Kết quả TOON cùng ước tính số token tiết kiệm được sẽ hiện ra ngay.
- Chọn dấu phân cách: dấu phẩy (mặc định), tab hoặc dấu gạch đứng. Tab thường còn tốn ít token hơn nữa.
- Sao chép TOON vào prompt của bạn. Để đọc câu trả lời TOON của mô hình, hãy đổi chiều sang TOON → JSON.
TOON vs JSON: ví dụ minh họa
Cùng hai người dùng trong JSON:
{"users":[{"id":1,"name":"Ada","role":"admin"},{"id":2,"name":"Bob","role":"user"}]}
và trong TOON:
users[2]{id,name,role}:1,Ada,admin2,Bob,user
Tên trường chỉ được viết một lần ở phần tiêu đề thay vì lặp lại trong từng đối tượng, đồng thời dấu nháy, dấu ngoặc nhọn và phần lớn dấu câu đều biến mất. Với các mảng đối tượng đồng nhất – các dòng trong cơ sở dữ liệu, log, kết quả tìm kiếm, danh sách sản phẩm – mức tiết kiệm rất lớn: trong thử nghiệm của chúng tôi với 100 bản ghi khách hàng, TOON cần ít hơn khoảng 65% token so với JSON đã định dạng và ít hơn 47% so với JSON rút gọn. Dấu độ dài [2] còn giúp mô hình và bộ giải mã kiểm tra rằng không thiếu dòng nào.
Tóm tắt định dạng TOON
| Dữ liệu | TOON |
|---|---|
| Trường của đối tượng | name: Ada |
| Đối tượng lồng nhau | address: theo sau là các trường được thụt lề |
| Mảng các giá trị đơn | tags[3]: red,green,blue |
| Mảng các đối tượng có cùng khóa | users[2]{id,name}: theo sau là mỗi đối tượng một dòng |
| Mảng hỗn hợp hoặc lồng nhau | items[2]: theo sau là các mục danh sách - |
| Chuỗi | không có dấu nháy, trừ khi chứa dấu phân cách, dấu hai chấm, dấu nháy hoặc dấu ngoặc, có khoảng trắng ở đầu hoặc cuối, hoặc trông giống số, true, false hay null |
Khi nào JSON vẫn là lựa chọn tốt hơn
- Dữ liệu lồng sâu hoặc không đồng nhất – khi các đối tượng có khóa khác nhau hoặc chứa đối tượng lồng nhau, TOON quay về dạng danh sách thụt lề và mức tiết kiệm giảm đi hoặc biến mất. Với 20 bản ghi, mỗi bản ghi chứa một địa chỉ lồng nhau và một danh sách tag, TOON vẫn nhỏ hơn 34% so với JSON đã định dạng nhưng lớn hơn 12% so với JSON rút gọn. Công cụ hiển thị cả hai phép so sánh cho dữ liệu của bạn.
- Giao tiếp giữa các hệ thống – API, function calling và structured outputs đều yêu cầu JSON.
- Mức độ quen thuộc với mô hình – các mô hình ngôn ngữ đã thấy JSON nhiều hơn TOON rất nhiều; hãy kiểm tra chất lượng câu trả lời trên chính prompt của bạn trước khi chuyển đổi.
- Dữ liệu rất nhỏ – với một vài giá trị, chênh lệch là không đáng kể.
Số token được ước tính bằng số ký tự ÷ 4. Con số chính xác phụ thuộc vào tokenizer của mô hình bạn dùng, nhưng chênh lệch tương đối là một chỉ dẫn tốt.
Câu hỏi thường gặp
TOON là gì?
TOON (Token-Oriented Object Notation) là cách mã hóa gọn, dễ đọc cho mô hình dữ liệu của JSON, được thiết kế cho prompt LLM. Nó kết hợp thụt lề kiểu YAML cho đối tượng với các dòng kiểu CSV cho mảng đồng nhất.
TOON có tốt hơn JSON không?
Khi gửi dữ liệu dạng bảng hoặc đồng nhất cho mô hình ngôn ngữ, câu trả lời thường là có: ít token hơn và độ dài mảng được ghi rõ. Với API, lưu trữ và dữ liệu lồng sâu, JSON vẫn là lựa chọn tốt hơn.
Số token được ước tính như thế nào?
Công cụ chia số ký tự cho bốn, một quy tắc ước lượng phổ biến cho văn bản tiếng Anh và code; với văn bản tiếng Việt, số token thực tế thường cao hơn. Con số chính xác phụ thuộc vào tokenizer của mô hình bạn dùng.
Có thể chuyển TOON ngược lại sang JSON không?
Có. Đổi chiều sang TOON → JSON; bộ giải mã sẽ kiểm tra độ dài mảng đã khai báo và báo dòng gặp lỗi nếu có.