TOML形式とは?

TOML(Tom's Obvious, Minimal Language)は、明白なセマンティクスにより読み書きが容易になるよう設計された設定ファイル形式です。GitHub共同創業者のTom Preston-Wernerによって作成されたTOMLは、ハッシュテーブルに明確にマッピングされ、Rustプロジェクト(Cargo.toml)、Pythonツール、その他多くのアプリケーションの設定ファイルとして一般的に使用されています。角括弧で示されるセクションとINIファイルに似たキーと値のペアを使用した明確で最小限の構文を採用していますが、配列、ネストされたテーブル、日付、適切な型処理を含むより豊富なデータ型をサポートしています。

ツール説明

このコンバーターは、TOMLとTOON形式間でデータを双方向に変換します。TOML設定ファイルをLLM処理用のトークン効率的なTOON形式に変換するか、TOONデータを標準的なTOMLに変換します。このツールは公式の@toon-format/toonおよびsmol-tomlライブラリを使用して、正確な変換を保証します。これは、LLMで設定管理タスク、Infrastructure-as-Codeシナリオ、またはトークン制約内でTOMLデータを効率的に処理する必要があるあらゆる状況で特に有用です。

TOML入力:

[database]
server = "192.168.1.1"
ports = [8000, 8001, 8002]
enabled = true

[[servers]]
name = "alpha"
ip = "10.0.0.1"
role = "frontend"

[[servers]]
name = "beta"
ip = "10.0.0.2"
role = "backend"

TOON出力:

database:
  server: 192.168.1.1
  ports: [8000,8001,8002]
  enabled: true
servers[2]{name,ip,role}:
  alpha,10.0.0.1,frontend
  beta,10.0.0.2,backend

設定ファイルの例:

ネストされた構造を持つTOML設定:

[app]
name = "MyApp"
version = "1.0.0"

[app.settings]
debug = false
timeout = 30

[[app.features]]
id = 1
name = "feature-a"
enabled = true

[[app.features]]
id = 2
name = "feature-b"
enabled = false

コンパクトなTOONになります:

app:
  name: MyApp
  version: 1.0.0
  settings:
    debug: false
    timeout: 30
  features[2]{id,name,enabled}:
    1,feature-a,true
    2,feature-b,false

機能

  • TOML形式とTOON形式間の双方向変換(完全な忠実度を保証)
  • LLM処理用のトークン削減(構造化設定で30~50%少ないトークン)
  • TOMLセマンティクスの保持(テーブル、テーブルの配列、ネストされた構造を含む)
  • 型安全な変換(整数、浮動小数点数、ブール値、文字列、配列を保持)
  • リアルタイム変換(入力時に即座に結果を表示)

ユースケース

  1. LLMによる設定分析 - TOML設定ファイルをTOON形式に変換してからLLMに送信し、分析、提案、またはドキュメント生成を行い、トークンコストを削減
  2. Infrastructure-as-Code処理 - Terraform、Cargo、その他のTOMLベースの設定を変換し、LLMベースのインフラストラクチャレビューと修正を効率的に実施
  3. CI/CD設定管理 - ビルド設定ファイルをLLMで処理して最適化または移行を行い、APIコストを最小化
  4. 設定の移行 - LLM搭載の設定管理ツールと統合する際に、アプリケーション設定をフォーマット間で変換
  5. ドキュメント生成 - TOML設定をLLMベースのドキュメント作成者用に準備し、トークン効率的なエンコーディングを使用

変換の詳細

コンバーターはTOML固有の機能を適切に処理します:

  • テーブル[section])はTOONのネストされたオブジェクトにインデント付きで変換
  • テーブルの配列[[array]])は均一な場合、TOONの表形式に変換
  • インラインテーブル{key = value})は適切なネストを通じて構造を保持
  • データ型(文字列、整数、浮動小数点数、ブール値、日付)は型安全性を保持
  • 配列はTOON配列記法に適切なフォーマットで変換
  • ドット記法キーa.b.c = value)はネストされた構造に展開

トークン効率

LLM処理前にTOMLをTOONに変換すると、大幅な節約が得られます:

トークン比較の例(50サーバー設定):

  • TOML(フォーマット済み):≈ 12,500トークン
  • TOON:≈ 7,200トークン(42%削減)
  • TOON利点:コンテキストウィンドウ内により多くのデータ、低いAPIコスト

節約は以下の場合に最も顕著です:

  • 繰り返されるテーブル構造([[servers]][[databases]]など)
  • 類似した設定オブジェクトの配列
  • 均一なセクションを持つ大規模な設定ファイル
  • 類似した構造を持つマルチ環境設定

形式の互換性

サポートされているTOML機能:

  • 基本的なキーと値のペア
  • テーブルとネストされたテーブル
  • テーブルの配列
  • インラインテーブルと配列
  • すべてのTOMLデータ型(文字列、整数、浮動小数点数、ブール値、datetime、配列、テーブル)
  • コメント(構造では保持されますが、TOON表現では保持されません)

ラウンドトリップ忠実度: TOML → TOON → TOML変換はデータ整合性を保持しますが、フォーマットとコメントは正規化される場合があります。セマンティクスの意味とすべての値は保持されます。

このコンバーターを使用する時期

TOML → TOONを使用する場合:

  • 設定ファイルをLLMに送信して分析または修正を行う
  • トークン制限内で大規模なTOML設定を処理
  • 複数の設定ファイルをLLM APIを通じてバッチ処理
  • TOML設定からドキュメントを生成

TOON → TOMLを使用する場合:

  • LLMが生成した設定を標準形式に変換
  • LLM出力をTOMLベースのツールチェーンに統合
  • コンパクトデータから人間が編集可能な設定ファイルを作成
  • TOML対応アプリケーション用の出力を準備