コンテンツにスキップ
$ uv run indx encode --signatures file://$PWD/tests/fixtures/invoice-anthropic.pdf
エンコード結果completed
page:1ページ · 完了
invoice_number
MRFL4…0006
total
220.00 USD
page:1/chunk:1チャンク · 完了

Invoice · Amount due $220.00 USD

実行invoice-parser · cpu · fallback 0
使用量1 ページ · 68,446 バイト · $0.00

indx

読む前に、どう読むかを決める。 indx は文書を低コストで観察し、計画を返します。どの機能が各ページを読むのか、その理由、想定コストが含まれます。計画は確認も保存も拒否もできます。実行はその計画と宣言済みフォールバックだけに従います。

課題

文書タイプごとのパイプラインを、人が組むべきではない

Section titled “文書タイプごとのパイプラインを、人が組むべきではない”

社内文書に AI を使うには、これまで誰かが事前に「このデータタイプはどのモデルとどのパーサーで読むか」を決める必要がありました。フォーマットごとに専用実装が積み上がります。PoC から本番までに数か月かかります。

indx はその判断をなくすために存在します。1 つのルーティング層が各ページを、機能する最も安い経路へ送ります。そして AI-ready な出力 — テキスト、構造化メタデータ、チャンク、埋め込み — を、利用者が管理するインデックスのために返します。

ラダー

どのページも、最も安く読めるラングで止まる

Section titled “どのページも、最も安く読めるラングで止まる”

ルーティングは 4 つの機能種別を段階的にたどります。多くのページは最初のラングで止まります。選ばれたラングより下のラングはすべて計画にフォールバックとして残ります。だからページが黙って消えることはありません。

native text layer

既にあるテキストを読む

テキスト層が既に存在します。CPU 上でほぼゼロコストで抽出します。

ocr

スキャンページを認識する

PP-OCR を CPU で実行します。任意インストールです(–extra ocr)。

vlm

難しいページをエスカレーションする

OCR で読めないページは視覚モデルが読みます。GPU または外部ホストで動作します。任意インストールです(–extra vlm)。

manual review

最後は人へ、消失はさせない

終端のラングです。人間は何でも読めます。だからページは消えません。

得られるもの

参照・追跡・埋め込みができるブロック

Section titled “参照・追跡・埋め込みができるブロック”
01

結果をそのまま利用する

ブロックは文書・ページ・領域・チャンク単位で参照できます。それぞれがテキスト、状態、階層、来歴を持ちます。

02

存在する構造を保持する

専用機能が抽出したフィールドは、それを記述したブロックへ付与されます。テキストへ平坦化されません。

03

検索とエージェントに備える

チャンクブロックにはバージョン付き埋め込みを付与できます。対応するクエリエンコーダーも同じコアから利用できます。

04

すべての結果を説明する

計画、すべての実行試行、実使用量、明示的な読み取り不能状態がレスポンスに残ります。

想定ユーザー

検索・エージェントパイプライン

自分の管理するインデックスに入れるチャンクテキストとバージョン付き埋め込み。対応するクエリエンコーダーも一緒に返ります。それがなければベクトルは後で使えません。

文書処理アプリケーション

処理の説明責任を負うアプリケーション。いくらかかったか、どこで実行されたか、47 ページ目に何が起きたか。計画とトレースがその答えです。

コーパス運用者

十分なときは常に安い経路を使います。足りないときだけ明示的にエスカレーションします。その差は主張ではなく計測で示されます。

誰もルーターが欲しいわけではありません。欲しいのは成果です — ゴールと非ゴールをご覧ください。

計測

このリポジトリは、実在する複数ページ文書 17 件・1,361 ページのベンチマークを所有しています。以下の 3 つの数値はラベルに依りません。費用比較は両側とも同じ経済性テーブルによる見積値で、精度はラベル付きの部分集合で採点していますが、そのラベルはまだレビュー中のため、精度の数値はここには置きません。

0.05 s1 ページあたりの秒数
$0.000031 ページあたりのルーティング費用(全ページ VLM なら $0.02)
98.8%CPU のみで処理したページ

本番環境の根拠として使う前に、ベンチマークの詳細を確認してください。

ゴール

まずバックボーン。他は計測済みベースラインの後。

Section titled “まずバックボーン。他は計測済みベースラインの後。”

実装済み

  • 説明可能で、同じ入力から再現できる計画
  • 宣言済みフォールバックと完全なトレース付きの実行
  • 1 つの契約に対する HTTP・CLI・Python インターフェース
  • リポジトリ所有のベンチマーク

計画中

  • CPU でのコーパス分類
  • 難しい企業データ:手書き、図面、スプレッドシート
  • 利用者管理のインデックスへのエージェント向けエクスポート

非ゴール

  • ベクトルインデックスを所有すること
  • 計画段階での重い処理
  • 実行段階での無断の再計画

完全なリストはゴールと非ゴールにあります。機能ごとのカタログは、例付きの機能一覧にあります。

拡張

機能の追加はインストールであり、コード変更ではない

Section titled “機能の追加はインストールであり、コード変更ではない”

機能は独立したディストリビューションで、indx.capabilities エントリポイントを通じて発見されます。インストールすればルーティング対象になります。既定のインストールにはモデル重みも認証情報も含まれません。

indx-capability-native-extractionindx-capability-manual-reviewindx-capability-invoiceindx-capability-generic-ocrindx-capability-generic-vlmindx-capability-embedding-hashed

自分の機能を作る手順は indx を拡張するで説明しています。

開発中です。 ルーティング、実行、フォールバック、HTTP・CLI・Python インターフェースは実装済みです。出力品質はまだ計測されていません。OCR、VLM、モデルベースの埋め込みエンジンは任意インストールです。よくある質問は FAQ にまとめています。