このツールについて
構造化出力を使うと、モデルは自由形式のテキスト(こちらで解析してうまくいくことを祈るしかないもの)ではなく、あなたが定義したスキーマに準拠した JSON を返せます。このビルダーはそのスキーマをフィールドごとに組み立て——名前、型、説明、required フラグ、enum、ネストされたオブジェクトや配列——各プロバイダーが期待する正確な形でエクスポートします。生の JSON Schema、OpenAI の response_format および function-tool ラッパー、Anthropic のツール input_schema、Google Gemini の responseSchema、さらに貼り付けてすぐ使える Zod と Pydantic の定義です。
OpenAI の厳格な構造化出力モードには、知っておくべきルールがあります。すべてのプロパティを required として列挙する必要があり、additionalProperties は false でなければなりません。ビルダーは OpenAI 向けのエクスポートでこれらを自動的に適用し、違反するものがあれば指摘するため、コピーするスキーマが実際に機能します。既存の JSON サンプルを貼り付けて開始用のスキーマを推測させ、そこから調整していきましょう。
スキーマはすべてブラウザ内で構築・エクスポートされます。入力した内容は一切アップロードされません。
よくある質問
構造化出力とツール利用とは何ですか?
どちらもモデルにスキーマに一致する JSON を返すよう求めるものです。構造化出力はモデルの最終的な回答を、あなたが定義した形に制約します。ツール(関数)呼び出しは、モデルがあなたの関数の1つを呼び出すと判断したときに生成しうる引数を記述します。基盤となるスキーマ形式は同じです。
なぜ OpenAI の厳格モードはすべてのフィールドを required にするよう求めるのですか?
厳格モードは、出力が予期せぬ結果なくスキーマに対して検証されることを保証します。そのために、オプションのプロパティや追加のプロパティを許可しません。フィールドを実質的にオプションにするには、その型を nullable——null との union——として宣言しつつ、required リストに残しておきます。
OpenAI、Anthropic、Gemini のエクスポートの違いは何ですか?
JSON Schema はおおむね共通ですが、各プロバイダーは異なる方法でそれをラップします。OpenAI は response_format または strict: true を付けた function tool の下にネストし、Anthropic はツールの input_schema として期待し、Gemini は対応する型の独自の enum を持つ responseSchema を使います。このツールはそれぞれに対して正しいラッパーを出力します。
Zod や Pydantic のコードを生成できますか?
はい。プロバイダー向けの形式に加えて、ビルダーは TypeScript 用の Zod スキーマと Python 用の Pydantic モデルを出力するため、あなた自身のコードで応答を検証できます。