大数跨境
0
0

专为大型语言模型提示设计的数据模型编码方式。比json语法更简洁,减少了模型处理时的 token数量,数据结构更易于模型理解。

专为大型语言模型提示设计的数据模型编码方式。比json语法更简洁,减少了模型处理时的 token数量,数据结构更易于模型理解。 github淘金
2025-11-18
0
导读:toon“一种紧凑、人类可读的 JSON 数据模型编码方式,专为大型语言模型(LLM)提示设计。

toon

一种紧凑、人类可读的 JSON 数据模型编码方式,专为大型语言模型(LLM)提示设计。它提供了与 JSON 相同的对象、数组和原始类型的无损序列化,但语法更简洁,减少了模型处理时的 token 数量,同时使数据结构更易于模型理解。

Github地址

https://github.com/toon-format/toon

项目特点

  • Token 高效:通常比格式化的 JSON 少 30%-60% 的 token。
  • LLM 友好:明确的长度和字段声明有助于验证。
  • 最小化语法:去除冗余标点符号(大括号、方括号、大多数引号)。
  • 基于缩进的结构:类似 YAML,使用空格代替大括号。
  • 表格数组:声明键一次,以行的形式流式传输数据。
  • 可选键折叠:将单键包装链折叠为点分路径(例如 data.metadata.items),减少缩进和 token。

项目背景

  • 随着 AI 技术的发展,上下文窗口变大,数据输入量增加,而 LLM 的 token 仍然有成本。标准 JSON 格式较为冗长,token 开销大。
  • YAML 已经通过更简洁的语法减少了 token 数量,但 TOON 在此基础上进一步优化,结合了 YAML 的缩进结构和类似 CSV 的表格布局,尤其适用于统一对象数组的场景。

格式对比示例

  • 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
        }
    ]
    }
  • YAML 格式

         
    context:
      task:Ourfavoritehikestogether
    location:Boulder
    season:spring_2025

    friends:
    -ana
    -luis
    -sam

    hikes:
    -id:1
        name:BlueLakeTrail
        distanceKm:7.5
        elevationGain:320
        companion:ana
        wasSunny:true
    -id:2
        name:RidgeOverlook
        distanceKm:9.2
        elevationGain:540
        companion:luis
        wasSunny:false
    -id:3
        name:WildflowerLoop
        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

适用场景与限制

  • 适用场景
    • 统一对象数组(每个对象具有相同的字段结构)。
    • 需要减少 LLM 处理时的 token 数量。
    • 数据结构相对简单,适合表格化表示。
  • 不适用场景
    • 深度嵌套或非统一结构的数据(JSON 在这种情况下可能更高效)。
    • 半统一数组(token 节省有限,如果已有 JSON 管道则建议继续使用 JSON)。
    • 纯表格数据(CSV 更小,但 TOON 会增加少量开销以提供结构,从而提高 LLM 的可靠性)。
    • 对延迟要求极高的应用场景(在这种情况下,需要在具体环境中进行基准测试,以确定哪种格式更快)。

【声明】内容源于网络
0
0
github淘金
打破信息差,不为免费而付费。关注我,每日分享各种有趣,实用的开源项目。
内容 1994
粉丝 0
github淘金 打破信息差,不为免费而付费。关注我,每日分享各种有趣,实用的开源项目。
总阅读386
粉丝0
内容2.0k