AIの出力JSONをオーバーターンさせる最も一般的な理由は「JSONを理解していない」からではなく、あなたが指定した目標が広すぎて、フィールドが緩すぎ、フォールトトレランスが補われていないからです。 モデルは構造的に話すことを学ぶことはできますが、それは自然に信頼できるシリアライゼーションプログラムではありません。 「jsonを返してください」とだけ求め、フィールドや型、欠損の処理を制限せず、最後に説明が入り、引用符が一つ減り、フィールド名が突然書き換えられるなど、高頻度の結果が出ます。
よくあるロールオーバーポイントは通常ここに来ます
| 質問 | 地表現象 | より可能性が高い出典 |
|---|---|---|
| 複数出力字幕 | JSONには、前後でより自然な言語が使われています | あなたは明確に構造体だけを返すことを許可していません |
| この場は、より多いと少ない間に変動します | 時には鍵が欠けていたり、名前が変わったりします | フィールドの定義や必須ルールは不明瞭です |
| 型は不安定です | 数字は文字列になり、配列は単一の値になります | 制約タイプやnullポリシーは存在しません |
| 内容は正当に見えますが、使えそうにありません | フォーマットは正しいですが、値が汚れています | ビジネスチェックサムの再試行が失われている |
より安定したアプローチは、プロンプトワードではなく、小さな制約のセットです
- まず、フィールドを絞り込み、本当に使いたいキーだけを残し、モデルがネストされたオブジェクトのレイヤーを12層以上生成させないようにしましょう。
- 各フィールドには型について明確に記載されており、それが必要かどうか、そして空文字列、空配列、nullなど欠落した場合に埋めるべきものが記されています。
- モデルに明確に伝えてください:JSONだけ返す、説明はなし、マークダウンしない、コードをブロックしない。
- アクセス側で解析チェックを行い、失敗した場合はエラーメッセージを返し、最初の結果を直接信じるのではなく、エラーとして再挑戦させてください。
「JSON出力」と「データは信頼できる」と混同しないでください。
構造は正しいですが、シェルはJSONに似ています。 フィールドが欠けているかどうか、値が汚れているかどうか、意味がずれているかどうかを本当に決めるものは何でしょうか。 自動化されたプロセスでは、プロンプトは最初の層に過ぎず、その後にスキーマチェック、デフォルトポリシー、失敗した再試行が続きます。 AIを安定させる鍵は「もっと慎重に」と促すことではなく、フォーマットの制約を補いながらプログラム検証を両立させることです。