TOON:一种为大模型设计的JSON压缩型数据结构

目录

TOON:一种为大模型设计的JSON压缩型数据结构

一、精准定义,什么是 TOON?

1、JSON 数据格式的局限性

2、TOON 的结构与优势

3、TOON 数据结构的主要特征

4、媒体类型与文件拓展名

二、举例:JSON 与 TOON 描述同一组数据分别是什么样

三、结语


作者:watermelo37

CSDN优质创作者、华为云云享专家、阿里云专家博主、腾讯云“创作之星”特邀作者、火山KOL、支付宝合作作者,全平台博客昵称watermelo37。

一个假装是giser的coder,做不只专注于业务逻辑的前端工程师,Java、Docker、Python、LLM均有涉猎。

---------------------------------------------------------------------

温柔地对待温柔的人,包容的三观就是最大的温柔。

---------------------------------------------------------------------

TOON:一种为大模型设计的JSON压缩型数据结构

最近 AI 圈子里出现了一个新概念:TOON

官方对它的描述是这样的:一种简洁、易读的 JSON 数据模型编码,最大限度地减少令牌数量,使模型易于理解结构。它旨在作为现有 JSON 的可随插、无损表示,用于 LLM 输入。它结合了 YAML 基于缩进的嵌套对象结构与 CSV 风格的表格布局,用于统一数组。TOON 的优势在于对象数组统一(每行多个字段,项目结构相同),实现类似 CSV 的紧凑性,同时增加了显式结构,帮助大型语言模型可靠解析和验证数据。

当下社区中关于 TOON 的文章质量良莠不齐,有些描述甚至是错误的。本文将结合官方描述与工程视角,对 TOON 做一次尽量简洁、准确的入门性介绍,帮助读者先弄清楚一个问题:

TOON 到底是什么?它解决的是什么问题?

截至目前,TOON 在 GitHub 上已经获得了 21.5k+ Star,一种比JSON更优秀的大模型友好数据格式真的诞生了?

一、精准定义,什么是 TOON?

1、JSON 数据格式的局限性

JSON 在工程世界里几乎无可替代,但在与大模型交互时,它有一个非常现实的问题:结构冗余。尤其是同构对象数组,比如:

{ "hikes": [ { "id": 1, "name": "Blue Lake Trail", "distanceKm": 7.5 }, { "id": 2, "name": "Ridge Overlook", "distanceKm": 9.2 }, { "id": 3, "name": "Wildflower Loop", "distanceKm": 5.1 } ] }

每一行都在重复:"id" "name" "distanceKm"。

在 LLM 输入中,这些重复的结构信息会消耗更多的上下文空间。JSON 的问题在于并非为语言模型的上下文机制设计,完善通用的结构给它带来了更多的信息冗余,但信息冗余是要花钱的。

2、TOON 的结构与优势

TOON 的核心思想就是:在保持 JSON 语义不变的前提下,把重复结构前移并声明一次 + 提前告知数据条目总长度。

它融合了三种表达风格:

  • YAML 的缩进结构:表达对象嵌套

  • 表格化声明:表达同构对象数组

  • 显式结构标注:减少歧义,方便模型解析

其核心就在于 TOON 将键名重复的同构对象数组变成形如“key[n]{a,b,c}:”的声明,后续n行只表示值。

举个例子,上面的JSON数据转化为 TOON 就是:

hikes[3]{id,name,distanceKm}: 1,Blue Lake Trail,7.5 2,Ridge Overlook,9.2 3,Wildflower Loop,5.1

是不是简洁了很多?重复的键名、空格、括号都被去除了。

3、TOON 数据结构的主要特征

官方仓库对于 TOON 的主要特征是这样描述的:

  • 令牌高效且准确:TOON 在混合结构基准测试中,在 4 个模型中,准确率达到 74%(而 JSON 仅为 70%),同时使用约 40% 的令牌。
  • JSON 数据模型:通过确定性、无损的往返编码与 JSON 相同的对象、数组和原语。
  • LLM 友好型护栏:明确的[N]长度和{fields}头部为模型提供了清晰的模式,提高了解析可靠性。
  • 最小语法:使用缩进代替大括号,减少引用,赋予类似 YAML 的可读性和 CSV 风格的紧凑性。
  • 表格数组:均匀的对象数组合并成表,表中声明字段一次,逐行传输取值。
  • 多语言生态系统:TypeScript、Python、Go、Rust、.NET 及其他语言中的规范驱动实现。

4、媒体类型与文件拓展名

TOON 文件在 HTTP 和内容类型感知的上下文中使用 .toon 扩展名和临时媒体类型 text/toon。TOON 文档始终采用 UTF-8 编码;可以指定 charset=utf-8 参数,但省略时默认为 UTF-8。

二、举例:JSON 与 TOON 描述同一组数据分别是什么样

TOON 看起来像添加了长度的 csv ?先别急,我们可以通过一个官方的对比案例理解一下 TOON 结构的真实魅力。

原始 JSON是这样的:

{ "context": { "task": "Our favorite hikes together", "location": "Boulder", "season": "spring_2025" }, "friends": ["ana", "luis", "sam"], "hikes": [ { "id": 1, "name": "Blue Lake Trail", "distanceKm": 7.5, "elevationGain": 320, "companion": "ana", "wasSunny": true }, { "id": 2, "name": "Ridge Overlook", "distanceKm": 9.2, "elevationGain": 540, "companion": "luis", "wasSunny": false }, { "id": 3, "name": "Wildflower Loop", "distanceKm": 5.1, "elevationGain": 180, "companion": "sam", "wasSunny": true } ] }

其中有各种特殊格式,比如嵌套、对象数组、非对象数组、普通对象等。转化为 TOON 后就变成了这样:

context: task: Our favorite hikes together location: Boulder season: spring_2025 friends[3]: ana,luis,sam hikes[3]{id,name,distanceKm,elevationGain,companion,wasSunny}: 1,Blue Lake Trail,7.5,320,ana,true 2,Ridge Overlook,9.2,540,luis,false 3,Wildflower Loop,5.1,180,sam,true

在不影响人类可读性的基础上,TOON 去除了所有的普通对象中的大括号、空格甚至双引号,将所有的同构对象数组和普通数组都简化成类似CSV的结构,并将数组的总长度、键名都提前声明,便于大模型获取核心信息。

这一点除了节省 token 外,官方认为还带来了识别和搜索效率的提升,这一点小瓜将在下一次更新《探究TOON的价值边界:比JSON更优的大模型友好数据格式?》中展开介绍。

三、结语

到这里为止,我们可以给 TOON 一个非常清晰的定义:TOON 是一种为大模型输入设计的、对 JSON 进行结构压缩的表示方式。它吸纳了 yaml、 csv 的表示特点,对 JSON 数据的表达结构进行了重构,在特定场景下能节约 token 的使用量。

它通过消除同构对象数组中的结构重复显式声明数组规模与字段模式来降低结构性 token 的消耗。但问题也随之而来,是不是所有 JSON 都适合 TOON?TOON 是否真的更利于模型理解?这些问题,将在下一篇《探究TOON的价值边界:比JSON更优的大模型友好数据格式?》展开。

只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~

其他热门文章,请关注:

极致的灵活度满足工程美学:用Vue Flow绘制一个完美流程图

你真的会使用Vue3的onMounted钩子函数吗?Vue3中onMounted的用法详解

Web Worker:让前端飞起来的隐形引擎

测评:这B班上的值不值?在不同城市过上同等生活水平到底需要多少钱?

通过array.filter()实现数组的数据筛选、数据清洗和链式调用

DeepSeek:全栈开发者视角下的AI革命者

TreeSize:免费的磁盘清理与管理神器,解决C盘爆满的燃眉之急

通过Array.sort() 实现多字段排序、排序稳定性、随机排序洗牌算法、优化排序性能

高效工作流:用Mermaid绘制你的专属流程图;如何在Vue3中导入mermaid绘制流程图

通过MongoDB Atlas 实现语义搜索与 RAG——迈向AI的搜索机制

【前端实战】如何让用户回到上次阅读的位置?

前端实战:基于Vue3与免费满血版DeepSeek实现无限滚动+懒加载+瀑布流模块及优化策略

深入理解 JavaScript 中的 Array.find() 方法:原理、性能优势与实用案例详解

el-table实现动态数据的实时排序,一篇文章讲清楚elementui的表格排序功能

JavaScript双问号操作符(??)详解,解决使用 || 时因类型转换带来的问题

内存泄漏——海量数据背后隐藏的项目生产环境崩溃风险!如何避免内存泄漏

MutationObserver详解+案例——深入理解 JavaScript 中的 MutationObserver

JavaScript中通过array.map()实现数据转换、创建派生数组、异步数据流处理、DOM操作等

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1119460.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI圈炸锅!GraphRAG让大模型不再“一本正经地胡说八道“,小白程序员也能上手的知识图谱增强技术!

前言 传统RAG系统通过检索——生成两阶段法有效缓解了大模型知识陈旧和幻觉问题,但是在处理复杂问题仍存在局限。依赖非结构化的文本向量的检索方式,很难捕捉到实体之间的深层关系,导致上下文不精确、信息碎片化,甚至有发模型幻觉…

避坑!外观专利侵权判定不看百分比!3步实操法+工具实测,跨境卖家/产品人必藏

做跨境产品或工业设计的朋友,大概率都踩过这个坑:产品刚小批量量产,就收到平台侵权投诉;爆款Listing刚起量,TRO临时限制令直接冻结资金;甚至只是参考竞品改了个细节,就被起诉索赔——核心问题都…

开题报告智能构建:百考通AI如何重塑论文写作的起点

凌晨三点,实验室的灯光依旧明亮。李博士盯着屏幕上那篇修改了第八遍的开题报告,眼睛干涩,思路枯竭。文献综述部分总是被导师指出“脉络不清”,研究方法和实施计划需要更加具体,而时间表安排也不够合理。这是许多高校学…

把 Web App 装进客户端——Tauri框架实战:托盘功能、消息通知、构建安装程序

背景 自主研发了一款面向个人用户的时间管理系统,核心功能涵盖任务管理、番茄钟计时、日志记录等;该系统主要以 Web 应用形态提供给用户,同时配套提供微信小程序、安卓及鸿蒙端应用,作为时空上便利性的补充。 近期收到用户反馈&…

【AI黑科技】RAG检索增强生成,让大模型从“一本正经地胡说“到“引经据典“!

一、LLMs 已经具备了较强能力了,为什么还需要 RAG(检索增强生成)? 尽管 LLM 已展现出显著的能力,但以下几个挑战依然值得关注: 幻觉问题:LLM 采用基于统计的概率方法逐词生成文本,这一机制内在地导致其可能出现看似…

学霸同款2026 AI论文写作软件TOP9:自考毕业论文必备测评

学霸同款2026 AI论文写作软件TOP9:自考毕业论文必备测评 2026年自考论文写作工具测评:为何需要这份榜单? 随着人工智能技术的不断进步,AI论文写作软件已成为越来越多自考生提升效率、优化内容的重要工具。然而,面对市场…

书籍-沃尔特·克里斯塔勒《德国南部中心地原理》

沃尔特克里斯塔勒《德国南部中心地原理》详细介绍 书籍基本信息 书名:Die zentralen Orte in Sddeutschland(德国南部中心地原理) 作者:沃尔特克里斯塔勒(Walter Christaller,1893-1969)【德国地…

c语言学习笔记(8)位运算符,++,--运算符的用法

C语言学习笔记(8):位运算符、、-- 运算符的用法 一、位运算符(Bitwise Operators) C语言提供了6个位运算符,用于直接操作整数的二进制位(bit)。常用于底层编程、嵌入式、性能优化等…

文献综述轻松搞定:百考通AI智能助手是如何成为科研工作者的“学术地图”?

在学术探索的征途上,文献综述往往是横亘在众多研究者,尤其是毕业生面前的第一道难关。面对海量文献,如何高效筛选、精准把握领域脉络、逻辑清晰地表述,成为许多人的痛点。今天,我们将深入了解一款真正懂学术的智能伙伴…

不连 Xcode,也能把 iPhone App 的实时日志看清楚

在调试 iOS App 的过程中,日志几乎是最先被依赖、也是最容易受限的一环。 很多人第一次遇到问题,都是在这种场景下: App 在测试机或用户手机上出现异常,但设备不是开发模式; 或者手机在 Windows 环境下,根本…

MySQL定期备份

命令备份 ./mysqldump -u root -p123456 --opt --default-character-set=utf8 -e --triggers -R --hex-blob --flush-logs -x platform -x l_log_whitelist -w "time < 2025

双管齐下:百考通AI如何破解论文“查重”与“查AI”的双重困境

在当今高校毕业论文审核中&#xff0c;超过85%的毕业生对查重环节感到焦虑&#xff0c;而近六成学生则在合理使用AI辅助工具与规避“学术不端”红线之间难以把握平衡。随着ChatGPT等大模型的普及&#xff0c;学术检测已从单一的“文字重复率”检测&#xff0c;扩展到了“AI生成…

交易所生死局:这套做市商系统如何让流动性枯井变涌泉?

引言&#xff1a;流动性——数字资产市场的生命线在加密货币市场日均交易量突破3000亿美元的今天&#xff0c;流动性已成为衡量交易所竞争力的核心指标。当某头部交易所因单日流动性枯竭导致BTC/USDT交易对滑点飙升至1.2%时&#xff0c;数万笔订单被迫取消&#xff0c;用户资产…

前端:VUE2

vue官网&#xff1a;https://cn.vuejs.org/服务端渲染 服务器浏览器服务器浏览器#mermaid-svg-7LrgJWuVc08jOSgy{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@key…

毕业论文全流程智能辅导指南:百考通AI如何化解写作难题

当秋季学期开始&#xff0c;学校的毕业论文通知如期而至&#xff0c;从选题、开题到撰写、修改&#xff0c;再到提交、答辩&#xff0c;这场历时数月的“马拉松”让无数学生倍感压力。作为一名经历过这一切的过来人&#xff0c;我深刻理解其中的艰辛与挑战。 今天&#xff0c;…

COMSOL——底层逻辑弱形式

COMSOL的底层逻辑&#xff0c;如何去求解物理场的。通常一个微分方程是根据一个场φ的方程&#xff0c;这里的φ可以是温度场、电场等等。方程包含场φ本身、一阶导数项、二阶导数项等等&#xff0c;进行一个组合运算最后为0。对于每一个点&#xff0c;都要保证这个等式是成立的…

ToolBlock高级脚本之显示XYA和二维码

显示XYA和二维码 using Cognex.VisionPro.ImageProcessing; using Cognex.VisionPro.CalibFix; using Cognex.VisionPro.PMAlign; using Cognex.VisionPro.Caliper; using Cognex.VisionPro.Dimensioning; using Cognex.VisionPro.ID; using Cognex.VisionPro.Blob ; using Sys…

从0到1搭建RWA协议:链下资产上链的全链路攻略

引言&#xff1a;RWA——区块链与现实世界的“价值高速公路”在加密货币市值突破3万亿美元的今天&#xff0c;区块链技术正从“数字游戏”向“价值载体”进化。然而&#xff0c;一个残酷的现实是&#xff1a;全球99%的资产仍存在于链下世界——从黄金、房地产到股票、知识产权&…

图吧工具箱最新绿色版,内置电脑cpu硬盘硬件多种检测工具,绿色免费

下载链接 https://tool.nineya.com/s/1jbp2a27f 软件介绍 图吧工具箱&#xff0c;是开源、免费、绿色、纯净的硬件检测工具合集&#xff0c;专为计算机硬件极客、DIY爱好者、各路大神及小白制作。集成常见硬件检测、评分工具&#xff0c;一键下载、方便使用。 软件特点 专业…

四旋翼飞行器:从路径规划到轨迹跟踪的奇妙之旅

四旋翼飞行器轨迹跟踪仿真路径规划控制 路径规划与轨迹 最小加速度轨迹最小捕捉轨迹 四旋翼无人机嘿&#xff0c;各位技术宅们&#xff01;今天咱们来聊聊超酷炫的四旋翼飞行器&#xff0c;这玩意儿在无人机领域那可是相当热门。咱主要探讨探讨它的路径规划与轨迹跟踪仿真&…