LLM を用いた自己修復 SQL パイプラインのエンジニアリ... ノート

LLM を用いた自己修復 SQL パイプラインのエンジニアリング:検証、ガードレール、および安全な復旧

自己修復SQLパイプラインとは、自律的なSQL生成とその後の特権付き実行を意味するものではありません。本番環境では、より安全な解釈は限定的であり、言語モデルが修正案を提案し、決定論的な制御がその修正が構文的に有効か、意味的に妥当か、運用上安全か、実行可能かなどを判断します。この区別は重要です。なぜなら、列名の変更を修正するのと同じメカニズムが、意図しないDELETE文を生成したり、JOINを広げたり、予期せず大量のデータセットをスキャンしたりする可能性もあるからです。構造化出力機能は、LLMの応答を定義されたスキーマに制約することができますが、スキーマへの準拠はデータベースの正確性や承認と同等ではありません。OpenAIのStructured Outputsは、生成された出力が提供されたJSONスキーマに準拠するように設計されており、SQLのセマンティクスや実行の安全性は検証しません。