事前 classification は、enrichment を開始する前に entity が想定される schema タイプに一致するかを検証します。この任意のステップにより、entity が schema に一致しない場合のハルシネーションやトークンの無駄を防ぎます。
LLMは積極的に手助けしようとします。スキーマに沿ってエンティティをエンリッチするよう求められると、そのエンティティがスキーマの型にまったく合致しない場合でも構造化された出力を生成します。その結果、もっともらしく見えても完全に誤ったハルシネーションデータが生じます。
スキーマ:「Planet」— エンティティ:「Titan」
LLM は Titan を惑星として扱い、公転周期、大気組成、衛星の数といったデータを捏造します。いずれももっともらしく見えますが誤りです。Titan は実際には土星の衛星です。
classificationが検出します:「不一致 — Titan は惑星ではなく衛星です」
エンリッチメントモデルはこのコンテキストを受け取り、関係のないフィールドをnullに設定し、エンティティに本当に該当するプロパティのみを埋めます。
classificationは、enrichment modelが開始される前に、単一の高速なLLM呼び出しとして実行されます。コストを最小限に抑えるため、安価で高速なmodel(Claude Haiku や GPT-4o Mini など)を使用します。
エンティティはスキーマのタイプに一致しています。エンリッチメントは高い信頼度で続行されます。
エンティティは、スキーマが想定しているものとは異なるタイプです。分類結果は、そのエンティティが実際に何であるかを説明します。
エンティティを確実に識別できません。LLMには、それを分類するための十分な情報がありません。
複数の有効な解釈が存在します。分類には代替案が一覧表示されます。
classificationは純粋に補助的なものです。何らかの理由(modelエラー、タイムアウト、レート制限)でclassification呼び出しが失敗した場合でも、enrichmentはclassificationコンテキストなしで通常どおり進行します。これにより、オプションのclassificationステップがenrichmentの完了を妨げることは決してありません。
classificationは、高速で安価なmodel上で実行されるように設計されています。最小限のペイロード(schema名、説明、および切り詰められたentityデータ)を送信し、小さな構造化レスポンスを想定しています。一般的なコストはenrichment自体のごく一部であり、精度の向上に十分見合うものです。
UIはServer-Sent Eventsを通じて分類の進行状況をリアルタイムで表示します。チェックが開始されるとclassification_startedイベントが発生し、続いてステータス、信頼度、エンティティの説明を含むclassification_completedが発生します。結果はモデル結果の上部にバナーとして表示されます。
分類フェーズ中にエンリッチメントをキャンセルすると、ジョブはエンリッチメントモデルを開始することなく直ちに停止します。無駄なトークンは消費されません。
Schema EditorまたはBatch Enrichmentのサイドバーで、「Classification」ドロップダウンを探します。高速で低コストなモデル(Claude Haiku、GPT-4o Mini、または類似のもの)を選択します。各エンティティのエンリッチメントが始まる前に、分類が自動的に実行されます。
REST API を使用する場合、enrichment リクエストに model の複合キー(例: anthropic::claude-haiku-4-5)を指定した classification_model フィールドを含めてください。