LLMの生成時に出力を制約し、指定した型、正規表現、JSON Schema、文法に適合させるPythonライブラリ。
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
インストール不要。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 の数値は毎日更新されます。
関連プロジェクト
AIチャットモデル向けのプロンプトをコミュニティで編集・管理するオープンソースライブラリ。Webサイト、CSV/Hugging Faceデータセット、CLI、MCPサーバー連携を提供します。
プロンプトの改善、出力のテスト・比較、再利用可能なアセットとしての保存ができるAIプロンプト最適化ツール。Web、デスクトップ、Chrome拡張機能、Dockerで利用できます。
多数のLLM API、画像生成エンジン、TTS音声モデルとチャットできる、ローカルインストール型のパワーユーザー向けフロントエンド。
AIエージェントが必要に応じて読み込む、指示・スクリプト・リソースをSKILL.mdフォルダにまとめるためのオープンな形式と仕様。
開発、インフラ、セキュリティ、データなど10カテゴリにわたる、すぐに使えるClaude Codeサブエージェント定義161件以上を厳選して収録。