CCAR-F 学習ノート(非公式)合格体験記へ

← 第4章のノートへ

音声原稿 04-b:スキーマと再試行

🎧 スキーマと再試行

このパートでは、出力の構文をスキーマで固定し、意味の矛盾は検証と再試行で扱うことを説明します。ノートの、ツールとスキーマ、請求書の欄、再試行の二通目、と同じ中身です。

ジェーソンだけを出力して、と文章で頼むと、前置きの一文や、末尾の余分な読点で、パーサが死にます。スキーマをツールの入力にし、ツールユースの引数として受け取ると、構文の破れはAPIの側で拒否されます。受け取るプログラムは、ツール引数のオブジェクトをそのまま検証します。ストリクトは、この拒否をさらに厳密にする仕組みです。通ったオブジェクトは、形としてはスキーマに合います。中身の合計が、声明と一致する保証ではありません。

ツールチョイスを、抽出に引き直します。オートは文章を返し得ます。スキーマが複数で、文書の種類が不明なら、エニーにして、どれかのツールで必ず返させます。メタデータを、エンリッチの前に通すなら、メタデータの抽出をそのターンだけ強制し、結果を見た次のターンで続きを選ばせます。成功するまで、強制は外しません。

スキーマの設計は、三つです。文書に無いかもしれない情報は、任意かつヌルを許します。必須にすると、モデルは欄を埋めるために、近傍の数字を入れます。請求書に税額の行が無いとき、合計を税額へコピーするのが、この失敗です。曖昧さ自体を値にします。判別不能は、アンクリアです。不明を空文字にすると、未抽出と、読んだが判別不能が、同じになります。分類が増えるなら、アザーと、詳細の文字列です。既知の分類を毎回拡張して、未知を既存のどれかへ押し込むと、新しい種類が古い種類の件数に混ざります。

請求書の欄で通します。欄は、請求番号、明細、税額、声明の合計、計算した合計、矛盾のフラグ、です。税額はヌルを許します。例の一つは、税額の行が無い文書で税額をヌル、合計は本文の数字のまま、です。他の例がすべて税額を埋めていると、この例が無いだけで創作が戻ります。判別できない通貨は空文字ではなく、アンクリアです。知らない費目は、既存の分類へ押し込めず、アザーと詳細にします。

ソースの表記がぶれるとき、スキーマは、どの文字列を許すか、であり、日付の方言を理解するわけではありません。和暦は西暦の、ハイフン区切りの日付へ揃えてから入れよ、という正規化を、プロンプトにスキーマと並べて書きます。

意味の検証は、スキーマの外に足します。声明の合計と、明細から計算した合計を両方抜き、一致しなければ再依頼します。ソース同士が矛盾するなら、矛盾を検出した、というフラグを立て、どちらかを静かに捨てさせません。検証器が黙って値を補正すると、モデルは誤りを学びません。パイダンティックのような検証器は、スキーマと、その後の意味の検査をコードで行い、失敗の文を次のプロンプトへ戻すための道具です。言語の文法が主題ではありません。補正せず、メッセージを返します。

検証に落ちたら、次の依頼に三つを含めます。元の文書、失敗した抽出、検証器の具体的なメッセージ。合計が明細と一致しない。声明は千、計算は八百、です。メッセージが無い再実行は、同じ出力を繰り返します。

一通目は文書とスキーマです。検証が、明細の和は八百、声明は千、で失敗します。二通目は、同じ文書、一通目のオブジェクト、その一文です。モデルは差額の行を探すか、矛盾のフラグを立てます。二通目に文書を入れ忘れると、モデルは失敗したオブジェクトだけを見て、数字を声明に合わせにいきます。ソースが無い補正です。文書があるときだけ、行の読み落としを復元できます。

効くのは、桁区切りの違い、欄の取り違え、閉じ括弧のような構造です。効かないのは、必要な数が別の文書にしか無いときです。その再試行は、無いものを作る圧力になります。記録を分けます。形式は再試行、不在はヌルのまま人手、です。

三通目でも同じ矛盾なら、それ以上の再試行は止め、矛盾のフラグのまま人手へ回します。再試行の上限は、形式の誤り用の小さい回数です。矛盾は、上限を待たずに人手へ回してよいです。上限まで自動で回すと、モデルは三通目で数字を作ります。

レビューの指摘には、検出したパターンを残します。開発者が却下したとき、どの形、つまり空のキャッチや、特定のコメントの様式が、誤検知を生んだかを集計できます。却下を件数だけ捨てると、基準の改善が勘になります。

このパートの判断は、こうです。構文は、スキーマつきのツールユースです。ストリクトは構文だけを守ります。意味の矛盾は検証です。無い欄はヌル、判別不能はアンクリア、未知の分類はアザーと詳細です。再試行に含めるのは、文書、失敗した結果、検証のメッセージです。情報がソースに無い再試行は、しません。

請求書の一行で、スキーマが止めるものと止めないものを分けます。税額を必須にすると、行が無い文書で、モデルは合計を税額へコピーします。ヌルを許すと、その創作は止まります。一方、声明が千で明細の和が八百、は、形としては通ります。ストリクトは構文の破れを拒否するだけで、この差は見ません。意味の検査を外に足し、両方の合計を抜き、違えば矛盾のフラグを立てます。どちらかを声明へ静かに合わせるのは、検証器が値を補正しているのと同じです。補正すると、モデルは誤りを知りません。失敗の文を、次のプロンプトへ戻します。

二通目に揃える三つを、欠落ごとに見ます。文書が無いと、失敗したオブジェクトだけを見て、数字を声明に合わせます。ソースが無い補正です。検証の一文が無いと、同じオブジェクトを繰り返します。失敗したオブジェクトが無いと、どこを直すかの手掛かりが文書全体に散ります。三つ揃って初めて、差額の行を探すか、矛盾のフラグを立てるかを選べます。三通目でも同じ矛盾なら、回数を待たずに人手です。形式の誤り、つまり桁区切りや閉じ括弧は、小さい回数だけ自動で戻してよいです。情報が別の文書にしか無い不在は、再試行せずヌルのまま人手です。再試行は、材料があるときだけ効きます。

表記のゆれは、スキーマが理解しません。和暦を、ハイフン区切りの西暦へ揃えてから入れよ、を、プロンプトにスキーマと並べて書きます。スキーマは許す文字列を決め、正規化の規則は文章が持ちます。どちらか片方だと、弾かれるか、方言のまま入るか、です。未知の費目は既存の分類へ押し込めず、アザーと詳細にします。押し込むと、新しい種類が古い種類の件数に混ざります。判別できない通貨は空文字ではなく、アンクリアです。空文字は、まだ読んでいない欄と区別できません。

検証器の仕事を、言語の機能と取り違えないでください。パイダンティックのような道具は、落ちた理由の文を次のプロンプトへ戻すために使います。黙って桁を直すと、モデルは声明と明細の差を知りません。次の依頼が同じ誤りを繰り返します。補正は人が見るべき矛盾を消します。フラグを立て、文を返し、三通目でも同じなら人手へ回します。

ツールチョイスとの接続です。文書種が不明でスキーマが二つならエニーです。オートのままだと、どちらのスキーマでもなく文章が返ります。メタデータを先に通す一段だけ名前を強制し、成功したらエニーへ戻します。失敗のまま戻すと、空のメタデータの上で抽出が走り、必須欄を埋めるために近傍の数字を使います。ヌルを許す設計と、強制を成功まで維持することは、創作を止めるための別の層です。

無い税額を必須にしたスキーマと、ヌルを許したスキーマを、同じ欠けた請求書で比べます。必須の側は合計の一部を税額に書き、ヌルの側は空のままです。再試行でこの差は埋まりません。欄の設計を先に直します。再試行は、文書に桁があるときの読み落としにだけ効きます。