Entity Enricher が単一のエンティティを処理する流れを、入力から分類、並列モデル実行、構造化出力までステップごとに解説します。
Workflow Editorページを開き、エンリッチメントを設定します。ワークフローステッパーが、Sample Data、Schema、Enrichment、Resultsというパイプラインの各ステージをガイドします。スキーマがdatabase syncにリンクされている場合はDatabase Readyステップも加わり、実行による変更がデータベース向けにキューされたことを確認します(または保存が拒否された理由を説明します)。
サンプルJSONを貼り付けてスキーマを自動生成し、インタラクティブなプロパティツリーを探索しましょう。プロパティを編集し、エキスパティーズドメインを追加し、フィールドを検索キーまたは保持対象としてマークできます。
エンリッチメントのオプション(戦略、モデル、言語、分類、加えてレスポンススキーマと厳格な構造化出力の切り替え)を設定し、エンティティ検索キー(名称、ウェブサイト、国など)を入力してエンティティを特定します。
各モデルのリアルタイムの進捗と結果を表示します。複数のモデルを使用する場合、フュージョン用に「結果をマージ」ボタンが表示されます。
使える結果を返しようがないリクエストもあります。それに気づく最も安上がりなタイミングは、最初の LLM 呼び出しの前です。そのため、2 つの契約を事前に検証します。
スキーマは、入力に何が含まれていなければならないかを規定します。どのエンティティであるかを示すキーフィールド、指定する配列の各要素のキー、そしてpreserveが指定されたすべてのフィールドの値です(与えられていないものを保持することはできません)。いずれかが欠けているリクエストは、すべての違反を一度に列挙した単一のエラーとともに拒否されます。さらにスキーマの完全なコントラクトも返されるため、拒否のたびに要件を一つずつ発見するのではなく、一度で修正できます。このコントラクトは保存済みのすべてのスキーマで公開されるため、クライアントは送信前に確認できます。
項目を指定した配列は厳密にエンリッチメントされます。モデルは各項目について把握している内容を埋めるだけで、項目を追加することも削除することもできません。明細を 5 件送れば、5 件が返ります。モデルが扱えなかった項目は失われることなくそのまま再挿入され、モデルが作り出した項目は破棄されます。空のままにした配列は開かれたままです — モデルが事実を発見するということであり、それこそが狙いです。
分類モデルを選択した場合、まず高速で低コストなLLM呼び出しが実行され、エンティティがスキーマのタイプに一致するかを検証します。これにより、エンティティが一致しない場合にエンリッチメントでトークンを無駄にすることを防ぎます。詳しくは分類のドキュメントをご覧ください。
選択された各モデルは、指定した戦略を使ってエンティティを処理します。指定がない場合は、スキーマの構造から自動的に選ばれた戦略が既定で使われ、その内容は実行の開始時に報告されます。複数のモデルを選択した場合、それらはプロバイダーをまたいで並列に実行され(Claude と GPT-4 は同時に実行されます)、同一プロバイダーのモデルはレート制限を守るため順次実行されます。
各 LLM の応答は、リアルタイムで schema に対して検証されます。出力が期待される型や制約に一致しない場合、システムは自動的にエラーを LLM に返して修正させます。
LLM 呼び出しごとに最大 5 回まで自動リトライします。各リトライには具体的な検証エラーが含まれるため、LLM は何を修正すべきかを正確に把握できます。修正は外科的で、誤って返された葉ノードだけを再度問い合わせ、回答全体をやり直すことはありません。
このリストに含まれないものにも注意してください。モデルが判定できなかった値は、再試行すべきエラーではありません。どのフィールドも欠落した状態で返る可能性があり、モデルは見つけられなかった項目を明示します。つまり「不明」は失敗ではなく 1 つの回答です。値の欠落が許容されるかどうかは、後段でエンティティがデータベースに登録される際に判断されます。モデルに推測させて決めるわけではありません。
2つのオプションのトグルは、レスポンスが返ってくる前に出力を制約するようプロバイダーに要求するため、そもそも修正が必要なレスポンスが減ります。どちらもそれをサポートするモデルにのみ適用され、すべては上記の検証・リトライループにフォールバックします。
Entity Enricher は Server-Sent Events(SSE)を使用して進捗をリアルタイムでストリーミングします。すべてのモデルの完了を待つ必要はなく、各専門領域やモデルが完了するにつれて結果が段階的に表示されます。
各モデルには、構造化された JSON 出力、expertise ごとの進捗バッジ、トークン使用量、コスト、処理時間を表示する専用の結果パネルがあります。マルチ expertise 戦略を使用する場合、各ドメインが完了するにつれて expertise バッジがリアルタイムで更新されます。
マルチ expertise domain 戦略を使用する場合、一部の expertise domain が失敗し、他が成功することがあります。Entity Enricher はすべてを破棄するのではなく、成功した expertise domain のマージ済み出力を「Partial」ステータスで返します。その後、enrichment 全体を再実行せずに、失敗した expertise domain のみを再試行できます。
enrichmentが完了すると、結果は今後の参照用にHistoryページに保存されます。複数のmodelを使用した場合は、Multi-Model Fusionを使って結果を統合できます。