ツール

JSON から JSON Schema 生成

サンプル JSON から JSON Schema を推論します。Structured Outputs や Function Calling 向けの OpenAI strict モードにも対応しています。

ブラウザ内で実行AI 開発ツール1.4万
無料

入力

0 B

結果

結果はここに表示されます。

Structured Outputs も Function Calling も JSON Schema を必要としますが、ネストした API レスポンスのスキーマを手で書くのは時間がかかり、細かな間違いも起こりがちです。実際のサンプル(できれば複数のレコードを含む配列)を貼り付ければ、スキーマが返ってきます。推論は見つけたすべての例をマージするので、あるレコードに欠けているキーは任意項目に、ときどき null になる値は nullable に、常に ISO タイムスタンプのフィールドには format date-time が付きます。strict モードでは、結果を OpenAI の Structured Outputs が受け付けるサブセットに書き換えます。

動作のしくみ

  • 推論は quicktype ではなくこのツール独自のコードで行います。quicktype のスキーマは、ネストしたオブジェクトを推測した型名の $ref 定義の奥に隠してしまうからです。
  • $schema 行には 2020-12 か draft-07 を選べます。オブジェクトはインラインで書き出すため、それ以外の部分はどちらでも同じです。
  • strict モードでは、すべてのプロパティを required に並べ、任意項目を nullable にし、すべてのオブジェクトを additionalProperties false で閉じ、オブジェクト以外のルートは items キーの下に包み、uri など OpenAI がドキュメントに記載していない format を削除します。

データの行き先

どこにも行きません。このツールは完全にブラウザ内で動作します。貼り付けたテキストはページが処理し、サーバーに送信されることも、ログに記録されることもありません。

このツールは無料で登録不要です。結果は開いているページの中にだけあり、どこにも保存されません。

必要なポイント

このツールは無料です。ログインもポイントも必要ありません。

よくある質問

ほぼすべてのレコードにあるフィールドが任意項目になるのはなぜですか?
少なくとも 1 つのサンプルでそのフィールドが欠けていたからで、スキーマはデータが実際にどうだったかを表しています。そのフィールドが本当に必須なら、欠けているサンプルのほうがバグです。そのレコードを入力から取り除くか、生成後に手作業で required リストにキーを追加してください。
OpenAI の strict モードでは何が求められますか?
すべてのプロパティが required に含まれ、すべてのオブジェクトで additionalProperties が false に設定され、ルートは配列や anyOf ではなくオブジェクトである必要があります。任意の値は null を含む型として表現します。サポートされる文字列の format は一部だけで(date-time、date、time、duration、email、hostname、ipv4、ipv6、uuid)、このツールが strict モードで uri を削除するのはそのためです。
strict モードで空の配列について警告されるのはなぜですか?
空の配列からは要素について何も推論できず、strict モードでは何でも許す items スキーマを受け付けられないからです。サンプル内のその配列に現実的な要素を 1 つ入れて、もう一度実行してください。strict モード以外では、その配列は制約のない items スキーマで書き出されます。

背後にあるオープンソース

このツールは外部ライブラリを同梱しない独自実装です。glideapps/quicktype(Apache-2.0)はコードとして同じ仕事をします。自分のプログラムで同じことをしたいなら、Web ページを呼ぶのではなくそちらから始めてください。

glideapps/quicktype

別の呼び方

  • json schema 生成
  • json から json schema
  • json schema 自動生成
  • structured outputs スキーマ
  • function calling スキーマ
  • openai strict mode