仕組み
低コストな観察から、追跡可能な文書表現の実行まで。
indx は「決めること」と「実行すること」を分離します。Router は OCR、ビジョンモデル、埋め込みモデルを呼び出さずにソースを観察できます。Executor は宣言済みの判断に従い、黙って再計画することはありません。
破線のノードは拡張ポイントです。ローダー、観測、機能、チャンカー、埋め込み空間はいずれも、インストールされたディストリビューションから indx.capabilities エントリーポイントを通じて届きます。詳細は indx を拡張する を参照してください。
1. 低コストで観察する
Section titled “1. 低コストで観察する”ソースローダーは入力サイズを制限し、メディアタイプを判定し、ダイジェストを計算して、ページ単位の根拠を調べます。PDF の事前観察では、認識処理を実行せずに、利用可能なテキスト層、画像、図面、空ページを区別します。
2. スナップショットに対して判断する
Section titled “2. スナップショットに対して判断する”plan() は、コンテンツアドレス付きスナップショットに記録された機能だけから選択します。ルートは文書全体の既定値、必要なページの上書き、順序付きフォールバックから構成されます。計画には次が記録されます。
- 各スコープで選択された機能とデバイス
- 選択とフォールバックの公開された理由
- 品質、レイテンシ、費用の見積値
- ソースダイジェスト、メディアタイプ、ポリシーバージョン、機能スナップショット ID
- 有効なルートを作れなかった制約
オプションのシグネチャ検出では、請求書パーサーなどの専用機能が自身を候補として提示できます。汎用ラダーはその後ろに残るため、誤認識しても文書全体ではなく一回の試行だけが追加されます。ラダーとは何か、ノミネーションとは何か、機能がルートに入るその他の扉はルーティングにまとめています。
3. 判断を変えずに実行する
Section titled “3. 判断を変えずに実行する”encode() は新しい計画を作成することも、以前作成した計画を受け取ることもできます。計画を受け取った場合、Executor はソースダイジェスト、メディアタイプ、スナップショットを検証し、選択済みの機能または計画に記載されたフォールバックだけを実行します。
フォールバックは未処理のページ単位で進みます。読み取り済みのページは保持し、未読ページだけが次の機能へ進みます。結果には、アドレス可能な文書・ページ・チャンクのブロックツリー、来歴、試行した全機能のイベント、実際の使用量が含まれます。
4. 失敗を見える状態に保つ
Section titled “4. 失敗を見える状態に保つ”読めないスコープや失敗したスコープも、理由とともにブロックツリーへ残ります。既定ポリシーでは手動レビューが最後の段階なので、未読ページを欠いたまま成功した文書として返すことはありません。