新格式 TOON 针对 LLM 应用优化 token 成本和性能,比 JSON 更高效。对大规模 AI 应用开发降低成本有直接工程价值。
构建 AI 和基于 LLM 的应用时,最大的隐性成本之一,往往来自一个看似简单的因素——数据格式。
当你把 JSON 发送给 Large Language Model(LLM)时,其中的每个 {}、[] 和 " 都会计入 token。面对大型 payload 或复杂的结构化数据,token(以及资金)很快就会被消耗殆尽。⚡️
这正是 TOON(Token-Oriented Object Notation)发挥作用的地方——它是一种专门为 LLM 设计的格式,能够让结构化数据更紧凑、更易读,也更节省 token。
TOON 是 Token-Oriented Object Notation 的缩写——一种针对 LLM 优化的现代轻量级数据格式。
“为提升 token 效率和人类可读性而重新设计的 JSON。”
它去掉了多余的部分——不再使用花括号、方括号或引号,而是改用缩进和表格化模式。最终得到的格式,无论模型还是人类都能轻松解析,同时使用的 token 要少得多。
当你把 JSON 发送给 LLM 时:
TOON 采用以下方式:
💰 最终效果:平均减少 30%~60% 的 token。
{
"users": [
{ "id": 1, "name": "Alice" },
{ "id": 2, "name": "Bob" }
]
}
users[2]{id,name}:
1,Alice
2,Bob
结构相同,含义相同,token 数量大约只有一半。
你可以使用官方 TOON package 亲自尝试。
npm install @toon-format/toon
# or
pnpm add @toon-format/toon
import { encode, decode } from "@toon-format/toon";
const data = {
users: [
{ id: 1, name: "Alice", role: "admin" },
{ id: 2, name: "Bob", role: "user" },
],
};
const toon = encode(data);
console.log("TOON Format:\n", toon);
// Decode back to JSON if needed
const parsed = decode(toon);
console.log("Decoded JSON:\n", parsed);
users[2]{id,name,role}:
1,Alice,admin
2,Bob,user
TOON 非常适合扁平、表格化的 JSON 对象,但并不适合深度嵌套的结构。在这种情况下,额外的缩进和上下文反而会增加 token 数量。
{
"company": {
"departments": [
{
"name": "Engineering",
"employees": [{ "id": 1, "name": "Alice" }]
}
]
}
}
➡ 将这种结构转换为 TOON 后,内容可能更长,而不是更短。
适合的场景:
不适合的场景:
TOON(Token-Oriented Object Notation)是 JSON 的一种轻量级、节省 token 的替代方案——专为 AI 和 LLM 工作负载而构建。
✅ 语法更简洁
✅ 人类可读
✅ 最多减少 60% 的 token
但请记住——它最适合扁平的 JSON 对象,而不是深度嵌套的结构。
如果你正在构建 LLM pipeline、prompt 模板或结构化 AI 数据集,TOON 可以帮你节省 token、降低成本,同时保持数据整洁。
下面是一段简短的 Node.js 脚本,你可以使用 OpenAI 的 tiktoken tokenizer,对比 JSON 和 TOON 的 token 使用量。
npm install @toon-format/toon tiktoken
import { encode } from "@toon-format/toon";
import { encoding_for_model } from "tiktoken";
const data = {
users: [
{ id: 1, name: "Alice", role: "admin" },
{ id: 2, name: "Bob", role: "user" },
{ id: 3, name: "Charlie", role: "editor" },
],
};
const jsonData = JSON.stringify(data, null, 2);
const toonData = encode(data);
// Use GPT-4 tokenizer (you can change to "gpt-3.5-turbo" etc.)
const tokenizer = encoding_for_model("gpt-4o-mini");
const jsonTokens = tokenizer.encode(jsonData).length;
const toonTokens = tokenizer.encode(toonData).length;
console.log("📊 Token Comparison");
console.log("-------------------");
console.log("JSON tokens:", jsonTokens);
console.log("TOON tokens:", toonTokens);
console.log("Savings:", (((jsonTokens - toonTokens) / jsonTokens) * 100).toFixed(2) + "%");
tokenizer.free();
📊 Token Comparison
-------------------
JSON tokens: 84
TOON tokens: 32
Savings: 61.90%
你可以根据自己的数据集调整这段脚本——对于扁平、表格化的数据,通常都能看到稳定的 30%~60% token 节省效果。
LLM 周边生态正在快速演进,即便只是从 JSON 切换到 TOON 这样的小优化,在大规模应用中也能显著降低成本、提升性能。
亲自试试看,跑一跑 benchmark,看看你究竟能省下多少 token(以及多少资金)!🚀
标签:#AI #LLM #PromptEngineering #JSON #TOON #AIOptimization #OpenAI #DataCompression #DeveloperTools
部分评论可能仅对已登录的访客可见。请登录以查看所有评论。
如需采取进一步措施,你可以考虑屏蔽此人和/或举报滥用行为。