Repolode
toon-format

toon-format/toon

LLMのプロンプトに構造化データを渡す際のトークン使用量を抑える、コンパクトで読みやすいJSONデータ向けエンコーディング。

スター
25,528
フォーク
1,280
未解決の Issue
2
最終コミット
12 日前

これは何?

TOON(Token-Oriented Object Notation)は、JSONのデータモデルを再エンコードし、ネストしたオブジェクトにはYAML風のインデントを、均一な配列にはCSV風の表形式の行を組み合わせます。各配列のヘッダーには長さとフィールド一覧が記載されるため、モデルは行数と各行に含まれるフィールドを把握できます。

このプロジェクトは、エンコード・デコード関数、巨大なデータセット向けのストリーミングAPI、JSONとTOONを相互変換して推定トークン削減量を表示するCLIを備えたTypeScript SDKを提供します。エンコードは可逆で、データを元のJSONに戻せます。公式実装とコミュニティによる移植版は、適合性テストスイートを備えた共通仕様を対象としています。

TOONは、均一なオブジェクトの配列に最も適しています。深くネストしたデータや不均一なデータでは、コンパクトなJSONのほうが効率的な場合があり、純粋にフラットな表形式データではCSVのほうが小さくなると、プロジェクトでは説明しています。リポジトリには、JSON、YAML、XML、CSVの検索精度とトークン数を比較するベンチマークが含まれています。

主な機能

  • 01JSONオブジェクトと配列を、YAML風のインデントと均一なデータ向けのCSV風テーブルを組み合わせた形式にエンコードします。
  • 02配列ヘッダーに行数とフィールド名を記載し、モデルが出力の途切れや形式の不備を検出しやすくします。
  • 03JSONとTOONの間で可逆的に変換できます。
  • 04エンコード、デコード、ストリーミングAPIを備えたTypeScript SDK。
  • 05ファイルまたは標準入力を変換し、--statsでトークン削減量を表示するCLI。
  • 06カンマ、タブ、パイプ区切りに対応しています。

ユースケース

  • データベースのクエリ結果など、均一なレコードの大きなリストを、プロンプトのサイズを抑えながらLLMに渡す。
  • JSON APIのレスポンスをプロンプトに挿入する前に、コンパクトな形式へ変換する。
  • JSONペイロードをTOONや他の形式で表した場合のトークン数を確認する。
  • 可逆で検証可能なデータ表現を必要とする、TypeScript製のLLMパイプラインを構築する。

クイックスタート

  1. 1

    インストール不要。npx を使って、自分の JSON データで TOON を試せます

    cat data.json | npx @toon-format/cli --stats

使う前に知っておきたいこと

  • 均一な配列やキー付きオブジェクトに最適です。深くネストされたデータや不均一なデータでは、通常の JSON のほうが良い結果になることがあります。
  • 形式は安定していると説明されていますが、現在も進化中のため、詳細が変わる可能性があります。

トピック

よくある質問

toon とは?
LLMのプロンプトに構造化データを渡す際のトークン使用量を抑える、コンパクトで読みやすいJSONデータ向けエンコーディング。 TOON(Token-Oriented Object Notation)は、JSONのデータモデルを再エンコードし、ネストしたオブジェクトにはYAML風のインデントを、均一な配列にはCSV風の表形式の行を組み合わせます。各配列のヘッダーには長さとフィールド一覧が記載されるため、モデルは行数と各行に含まれるフィールドを把握できます。
toon は無料で使えますか?ライセンスは?
toon は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
toon は今もメンテナンスされていますか?
活発にメンテナンス中。toon の最終コミットは 2026年10月9日 です。
toon は何に使えますか?
データベースのクエリ結果など、均一なレコードの大きなリストを、プロンプトのサイズを抑えながらLLMに渡す。 JSON APIのレスポンスをプロンプトに挿入する前に、コンパクトな形式へ変換する。 JSONペイロードをTOONや他の形式で表した場合のトークン数を確認する。 可逆で検証可能なデータ表現を必要とする、TypeScript製のLLMパイプラインを構築する。
toon のインストール方法は?
インストール不要。npx を使って、自分の JSON データで TOON を試せます: cat data.json | npx @toon-format/cli --stats
toon はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/toon-format/toon

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト