一文定義
LLMが必ずJSON形式で出力することを保証するAPI機能。OpenAI・Anthropic・Gemini等が提供し、パース失敗を防ぎシステム連携を安定させる。
詳細解説
JSONモード(JSON Mode)とは、LLM APIがレスポンスを必ず有効なJSON形式で返すことを保証する機能です。OpenAIは2023年11月にJSON Modeを、2024年8月にはより厳密な「Structured Outputs」機能(JSON Schemaに完全準拠)をGPT-4oに追加し、信頼性の高いJSON生成をAPI機能として提供しています。
JSONモードとStructured Outputsの違いとして、(1)JSON Mode:有効なJSONであることは保証するが、スキーマの構造(フィールド名・型)は保証しない、(2)Structured Outputs:事前に定義したJSON Schemaに完全準拠した出力を数学的に保証する(制約付きデコーディングを使用)。より厳密だがサポートされるスキーマに制約あり。
使用上の注意として、JSON Modeを有効にするだけでは適切なJSON出力は得られません。プロンプトに「JSON形式で回答し、以下のスキーマに従ってください:{...}」と明示的に指示する必要があります。また、JSON Modeはストリーミングと組み合わせる場合、完全なJSONが得られるまで途中の文字列はパース不可能な点に注意が必要です。
AnthropicのClaudeでは専用のJSON Modeが独立した機能ではなく、Tool Useを通じた構造化出力が推奨されています。GeminiはresponseSchema設定でJSON Schemaに準拠した出力を強制できます。
実装パターンとして、instructor・Outlines等のライブラリを使うとOpenAI/Anthropic/Gemini等の複数APIをラップして一貫したインターフェースで構造化出力を得られ、バリデーション失敗時の自動リトライも実装できます。
参考情報・出典
- ▸Structured Outputs – OpenAI Documentation— OpenAI(参照日: 2026-02-26)
- ▸JSON mode – OpenAI Documentation— OpenAI(参照日: 2026-02-26)