ロードマップ
indx が目指すコンテキストレイヤーを、今週出せるものから誰も着手していない作業まで画面ごとに追い、各画面の背後にすでにあるものを示します。
英語版が原文です。
目標はコンテキストレイヤーの青写真(英語のみ)です。2026-09-28 付の対話型のコンセプトデモです。考え方を一言でいえば、パーサー、NER モデル、ベクトルデータベースは汎用品であり、indx はそれらからあなたのコンテキストレイヤーを作る、ということです。顧客は文書のタイプとフィールドを定義します。仕事ごとに 1 つのルーターが、そのタイプに最も合う方法で各ページを処理します。人が修正するたびにそれがルーターを良くするデータになり、ルーティングが良くなると、その先のすべてのワークフロー(Parse、Extract、Tag、Summarize、Search、Compare)が良くなります。
青写真のソース自身が、そのデータは作り物だと述べています。「すべてのスコアは計測ではなく例示」です。このページは青写真の全体を計画しますが、そのデータは何ひとつ計画しません。規則は ADR-0073 に記録しました。ADR-0057 が Web アプリにすでに定めた規則と同じです。まだ何も答えない画面は、無効化したサイドバー項目です。そこに何が来るかを言葉で述べるプレースホルダーのページにしてもかまいません。サービスが生み出していない数値、チャート、サンプル文書、サンプルの答えは決して見せません。
各画面は次の 3 つの状態のいずれかを持ちます。
- 計画中:プロダクトの中で画面の背後にあるものはまだ何もありません。
- 進行中:画面が見せるものの一部に、API か今の Web アプリの画面がすでに答えます。
- 完了:青写真の画面が行うことを、人が Web アプリで実データに対して使えます。概要が最初にそれを得ました。
2026-09-10 の青写真に照らした以前のロードマップは、ロードマップ(2026-09-10)として残しています。その前の技術的な実装順とマイルストーンも残しています。
| 青写真の画面 | 今日答えるもの | 状態 |
|---|---|---|
| Overview | 部分ごとに完了・進行中・計画中で色分けし凡例をつけた青写真の図(各部分をクリックすると、スナップショットが一覧する空間、リーダー、アノテーターなど今日答えるものを見せます)、/v1/capabilities と /v1/documents からのライブの件数、各セクションの状態つきの 3 つの部分、行ごとの状態つきのカテゴリ比較 |
完了 |
| Data & labels | データとラベルの画面が、インストールの文書タイプを定義します。それぞれがフィールドと、そのタイプを形式シグネチャで認識するパーサーを持ち、/v1/types に保存され、運用者のトークンで書き込みます(ADR-0075)。 タイプは 7 つのテンプレートのいずれかから始められ、追加するとコピーされ、フィールドを編集するダイアログで開きます。その下に、抽出とタグの画面でレビュー担当者が保存したすべての判定を、判定した文書、ページ、答えとともに /v1/labels から一覧し(ADR-0076)、続いて学習用または評価用のデータセットを、レビュー済みの文書とこのブラウザが保持した文書から複数まとめて集め、まだ誰もレビューしていない文書は判定が付くまでレビュー待ちとし、同じタイプを教えて採点する文書がないように、インストールが読み直せる文書の数とともに /v1/datasets から一覧します(ADR-0077)。教師モデル、ルール、合成のバリエーションからのラベルはフェーズ 9 です。 |
進行中 |
| Embedding spaces | 同梱の 4 つの空間を、Web アプリの空間画面がライブで一覧します | 進行中 |
| Routers | /v1/plan は、何も動かす前にすべてのページのルートを返します。リクエストはリーダーを固定でき(ADR-0063)、チャンカーも名指せます。ルーター画面は、インストールが動かす 1 つのルーター、ラダーを、スナップショットが並べるとおりにソースから空間まで描きます。サンプルやファイルのルートを、何も読む前に /v1/plan からページごとにプレビューし、リーダーを固定したとき、フォールバックを切ったとき、シグネチャを求めないときに計画し直します。その上に、インストールが持つルーター(ADR-0078)。それぞれタイプごとの分岐(リーダーの固定、チャンカー、レーン、空間)、既定の分岐、認識器を持ち、編集し、変わらないバージョンとして公開し、復元します。選んだルーターの行と「確信なし」の行を描きます。プレビューは選んだルーターのもとで計画し、データストアはルーターのもとで文書を保存し、解析画面は各ページが取った分岐を示します。実験から昇格したバージョンはその実験を名指します。時間を追ったルーターごとの指標はフェーズ 8 です。 |
進行中 |
| Experiments | 実験の画面は、1 つの文書タイプの候補ルートを評価データセットで採点します(ADR-0082)。候補はそれぞれルーターのブランチ(リーダー、チャンカー、レーン、空間)で、ルーター自身のそのタイプのブランチと並べて、バックグラウンドで走ります(ADR-0083)。保存された結果だけから、各候補が当てた確かめた答えをフィールドごとに、まだ人が要るページ、各実行が報告したコストと時間、コストに対する正解数を示します。Promote は候補をルーターの次のバージョンとして公開します。説明し提案するアシスタントはフェーズ 10 です。 | 進行中 |
| Parse | 解析画面は、データストアで 1 つずつでも複数でも追加した保存文書を開きます。各ページを役割で色分けしたチャンク、計画が選んだルートとその理由とフォールバック、実際に読んだもの、チャンカーのバージョン、発火した形式シグネチャ。自社の例からの認識はフェーズ 5 です。 | 進行中 |
| Extract | 抽出画面は保存した文書を開きます。抽出レーンが見つけたものを、ラベルと正規化した表記ごとに、文書が印字した綴りとともに示し、各出現をそのページで、スパンに印をつけ、ページ上にチャンクを描きます。各ラベルを見つけたレーンも示します。レーンは比べられる確信度を述べないので、確信度は示しません。運用者のトークンがあれば、各出現を承認、訂正、却下でき、文書はいくつがレビュー済みかを述べます。判定は、それが埋める自社タイプのフィールドを名指せます。レーン選択で 1 つの抽出器が見つけたものを、採用されなかったラベルも含めて示します(ADR-0079)。few-shot の例はフェーズ 5 です。 | 進行中 |
| Tag | タグ付け画面は保存した文書を開きます。分類器が答えた各ファセットの答え、次点、返したスコア、次に各ページの最上位のラベル、エンリッチャーのタグ、そして答えた分類器とエンリッチャー。運用者のトークンがあれば、文書の各ファセットを承認、別のラベルに訂正、却下できます。レーン選択で 1 つの分類器やエンリッチャーが答えたものを、採用されなかったファセットも含めて示します。ラベルつきの近傍からの投票はフェーズ 5 です。 | 進行中 |
| Summarize | 要約画面は保存した文書を開きます。エンリッチャーの要約の各文が、そのテキストを含むページを引用します(テキストから計算するので、どのページも含まない文は何も引用しません)。各ページの要約と、読まれなかったページも示し、レーン選択で 1 つのエンリッチャー自身の要約を示します。 | 進行中 |
| Search | 検索画面は保存したすべての文書を検索します。語が意味より先に並び、各ヒットは各脚のスコアと融合したスコアを持ち、解析画面でそのページにチャンクを描いて開きます。メタデータのファセットはフェーズ 7、空間のバージョン切り替えはフェーズ 6 です。 | 進行中 |
| Compare | なし | 計画中 |
| Quality | なし。トレースは答えたコンポーネントをすべて応答ごとに名指ししますが、トレースを集計するものはありません | 計画中 |
| Operations | なし | 計画中 |
青写真の最後の画面「From today to this」はこの表のエンジニア向けの版で、このページがそれに代わります。Web アプリには、青写真が描かない実在の画面が 2 つあります。Endpoints と Deployment です。配信しているとおりの契約とインストールを見せるので、ワークスペースのグループの下に残します。
フェーズ(易しい順)
Section titled “フェーズ(易しい順)”各フェーズは、その画面が何を見せるか、すでに何があるか、何が欠けているか、先に何が要るか、そして何か実在のものが生み出すまで画面が見せてはならないものを述べます。フェーズは前のフェーズが終われば始められます。フェーズの中の画面は互いに独立しています。
フェーズ 0 — 正直な外枠:青写真のナビゲーションと概要 完了
画面が見せるもの。
- サイドバーを青写真のものにします。Overview、次に Improve(Data & labels、Embedding spaces、Routers、Experiments)、Use(Parse、Extract、Tag、Summarize、Search、Compare)、Operate(Quality、Operations)です。
- 概要には次の 3 つを載せます。
- 主張の図:文書 → あなたの基盤 → ルーター → ページごとの下流の方法 → あなたのコンテキストレイヤー。承認した出力が戻ってきます。
- 3 つの部分:Improve、Use、Operate。
- パーサー、NER モデル、ベクトルデータベースとの比較。カテゴリ単位で、ベンチマークは載せません。
届けたもの。
- 新しいナビゲーション。最初のグループ「今日試せるもの」に、プレイグラウンドとデータストアを以前のまま置きます。どちらも Use の各画面の一部に答えますが、それらの画面はまだ作られていません。
- 画面のない青写真のセクション(
indx-uxのPLACEHOLDER_SECTIONS)は、Use のものも含め、薄く表示したリンクです。リンク先のプレースホルダーのページが、セクションのロードマップ上の状態、何が来るか、すでに答えるものを言葉で述べ、このページへリンクします。データとラベルは、言葉の下にインストールのライブのソースを見せます。 - 概要には、部分ごとに完了・進行中・計画中で色分けし凡例をつけ、各部分のポップオーバーが今日答えるものを述べる青写真の図、
/v1/capabilitiesと/v1/documentsからのライブの件数、3 つの部分での各セクションの状態を載せます。 - 比較表の indx の列。青写真の無条件の「Yes」ではなく、各行の状態を示します。
- 特徴量画面の以前の URL(
/features/)は、データとラベルに着きます。 - トップページは同じ図をプロダクトとして描きます。すべての部分を完成した姿で描き、「indx がつくろうとしているもの」というキャプションとこのページへのリンクを添えます。ADR-0060 が認める、目標であると示した出力です。ナビゲーションのボタンは「アプリを開く」で、概要を開きます。
先に要るもの。 なし。既存のリクエストの上のフロントエンド作業でした。
見せてはならないもの。 インストールが返していないワークスペース名、ラベル数、精度、タイプ。
フェーズ 1 — 既存の API の上で、1 文書ずつ使う:Parse、Extract、Tag、Summarize、Search 完了
画面が見せるもの。 選んだ 1 つの文書を、1 つのタスクで見せます。
- Parse:チャンクの枠つきのページ、ルートとリーダー、全ページの表。
- Extract:フィールドと、それぞれがどこから来たか(ページ、枠、方法)。
- Tag:ラベルとスコア。
- Summarize:ページ引用つきの要約。
- Search:保存した文書への検索と、各ヒットが一致した理由。
届けたもの。
- 一度追加し、どこでも見る。 データストアは 1 つでも複数でもファイルとホストのサンプルを受け取り、Use の画面が読む単位で、インストール済みのすべてのレーンを通して保存します。スパンはページとチャンクに、ラベルと要約は文書のものと並べてページごとにも。パラメーターは概要の図の列に並び、それぞれ図と同じ状態を示します。各 Use 画面は保存した文書を 1 つ開き、選んだものは画面から画面へ引き継がれます。 保存した文書はその行からダウンロードできます。そこから生成されたものは JSON として、読んだ元のファイルはホストがソースを保持している場合に出ます(ADR-0084)。
- 解析: 役割で色分けしたチャンクつきの各ページ、計画が選んだルートとその理由とフォールバック、実際に読んだもの、チャンカーのバージョン、枠のないチャンクとその理由、全ページの表、発火した形式シグネチャ。
- 抽出: 抽出レーンが見つけたものを、ラベルと正規化した表記ごとに。各出現をそのページで、スパンに印をつけ、チャンクを描き、各ラベルを見つけたレーンを示します。レーンは比べられる確信度を述べないので、確信度の列はありません。
- タグ付け: 各ファセットの答え、次点、分類器が返したスコア、次に各ページの最上位のラベル、エンリッチャーのタグ、そして答えたもの。
- 要約: エンリッチャーの要約の各文が、自身のテキストにそれを含むページを引用します。各ページの要約と、読まれなかったページも。
- 検索: 保存したすべての文書への 1 つの問い。語が意味より先に並び、各ヒットは各脚のスコアと融合したスコアを持ち、解析画面でそのページにチャンクを描いて開きます。
ほかの作業に残したもの。
- セールスページが描くより細かいブロック(段落、見出しと節、スキャン上の表、図、ページの定型要素、ページをまたぐ続き)は独自のトラック、チャンクの項目のままです。それらが届くにつれ、画面はより細かい枠を描きます。
- 解析画面は、保存した各実行が何かを読む前に決まった計画を示します。文書は追加したときに一度だけ読むので、読む前に
/v1/planを呼ぶことはしません。 - Extract、Tag、Summarize のレーンでの絞り込み。ほかのレーンの答えを API が保つ必要があり、フェーズ 1b が届けました。
- 各 Use 画面は 進行中 のままです。青写真の画面にまだ欠けているものは、フェーズ 3、5、6、7 で来ます。
先に要るもの。 画面にはなし。
見せてはならないもの。
- 発火する形式シグネチャ(
invoice、process-chart)を超える「認識結果」。 - 最も近いラベルつきページ。
- 答えが持っていなかった確信度。
- 空間バージョンの切り替え。
これらはフェーズ 3、5、6 まで出どころがありません。
フェーズ 1b — レーンごとの答え。Extract、Tag、Summarize をレーンで絞り込む 完了
画面が示すもの。 Extract、Tag、Summarize のレーン選択。抽出器、分類器、エンリッチャーのそれぞれが答えたものを、採用されなかったラベル、ファセット、要約も含めて、統合した答えの横に示します。
届けたもの(ADR-0079)。
- 統合は変わりません。単位ごとに、答えを持つ最初のレーンが各ラベル、ファセット、要約の部分を取り、トレースは採用されたレーンを名指します。
- その横に、各レーンの答え全体を、予約されたメタデータキー
lanesの下に、レーン ID ごと、統合したキーと同じ形で保ちます。採用されなかったファセット、ラベル、要約も含みます。文書ブロックは文書とチャンクの答えとエンティティを、各ページブロックはそのページの答えを持ちます。 - リクエストが名指したレーンはすべて尋ねます。先の分類器がファセットを取っても分類器は飛ばされないので、重なるレーンを名指したリクエストはそれぞれの分を払います。
- データストアの「自動」は、すでに
vibratoを外していたのと同じくzeroshotを外します。文書、各ページ、各チャンクで尋ねると、CPU では 1 文書に 1 分を超えるからです。onnxも外すので、初めての利用ではモデルを待ちません。どちらも名前で選べば実行し、セレクターがそのコストを示します。zeroshotには警告、onnxとモデルを使う埋め込み空間にはより穏やかな注記です。 POLICY_VERSIONとopenapi.jsonは動きません。実行の出力であり、ブロックのメタデータは自由なオブジェクトだからです。文書ブロックのメタデータは、頼んだレーンの数だけ大きくなります。- データストアとプレイグラウンドは、セレクターごとに埋め込み空間、分類器、抽出器、エンリッチャーを複数選べます。選んだ順に尋ねるので、統合でどのレーンが採用されるかは選べます。
- Extract、Tag、Summarize は、2 つ以上のレーンが答えたときにレーン選択を描きます。「統合」は保存した答えで、どのレーンが各部分を取ったかとレビューの操作を示します。レーンを選ぶとそのレーン自身の答えを読み取り専用で示します。判定は保存した答えを裁くからです。
ほかの作業に残すもの。
- 1 つのレーンの答えへの判定。ラベルは統合した答えを裁き、レーンを名指しません。
- フェーズ 1b より前に保存した文書は
lanesを持たず、追加し直すまでレーン選択を描きません。
先に要るもの。 なし。フェーズ 1b は完了しました。
見せてはならないもの。 API が保たなかったレーンの答え、あるいはトレースから推測した帰属。
フェーズ 2 — Routers:動かす前に見えるルート、そして仕事ごとのルーター 完了
画面が見せるもの。
- 仕事ごとに 1 つのルーター。ソース → タイプの認識 → タイプごとの読み取り、チャンク化、抽出、埋め込みとリンク。
- 人にページを送る「自信がない」行。
- サンプル文書のルートのプレビュー。「何かが動く前に決まる」ものです。
- 公開されるバージョン。
今あるもの。
plan()はページごとのRoutePlanを返し、source_digest、capability_snapshot_id、policy_versionに結びつけます。encode()は計画が名指したルートとフォールバックだけを動かします。- ラダー:テキスト層、OCR、ビジョンモデル、手動レビュー(終端)。
- 6 つのリーダー。
- リクエストごとのリーダーの固定(
capability_ids、fallbacks_allowed)、リクエストごとに名指すチャンカー、ラダーより前にパーサーを推す形式シグネチャ。 - 第 1 段階、提供済み。 ルーター画面は、そのルーターを青写真と同じ形で描きます。ソース、認識(観察できる形式と、シグネチャがラダーより前に置くパーサー)、読み取り(ラダーの段。入っていないリーダーは入っていないと示します)、チャンク、抽出、埋め込み。その下に、どのリーダーも読めなかったページが手動レビューへ行く行があります。ルートのプレビューはサンプルやファイルを計画するだけで、読みも保存もしません。リーダー、フォールバック、シグネチャを変えると計画し直します。見せるのは、計画の状態、発火したシグネチャ、デプロイの見積もり、各ページのリーダー、フォールバック、理由です。
第 2 段階、提供済み: 保存され、バージョンを持つルーター(ADR-0074、ADR-0078)。
- 6 つ目のストアのポート
RouterStoreと/v1/routers。実装はmemory、sqlite、postgresです。バージョンは、ワークスペースが持つタイプごとの分岐(固定するリーダー、チャンカー、単位ごとのレーン、空間)、既定の分岐、任意で認識器(分類器、ラベルがタイプを名指すファセット、閾値)です。バージョンは変わりません。公開は次のバージョンを書き、復元は古いバージョンをもう一度公開します。 - リクエストは
router: {id, version?}を名指し、サーバーは計画の前にそれを解決し、各タイプのパーサーと、人がタイプに承認したダイジェストを加えます。計画はバージョンを名指し、すべての分岐、読む前にタイプが分かったページ(同じバイト列への承認済みの判定、なければ形式シグネチャ)、認識器を並べます。POLICY_VERSIONは 0.10.0 になりました。 - 分岐のリーダーは、読む前にタイプが分かったページでだけ固定されます。読んだ後、実行器はほかのページに、閾値に達すれば認識器のタイプを、なければレビュー待ちの印をつけた既定の分岐を与え、その分岐のチャンカー、レーン、空間だけを動かします。トレースは各ページの分岐と理由を記録し、別のバージョンで作った計画は 409 です。
- ルーター画面は次のバージョンを編集し、公開と復元をし、選んだルーターの行を「確信なし」の行とともに描き、そのもとでプレビューします。データストアはルーターのもとで文書を保存し、解析画面は各ページの分岐とレビューの印を示します。
ほかの仕事に残したもの。
- 時間を追ったルーターごとの指標(フェーズ 8)。実験からの昇格はフェーズ 4 で届きました。
- ラベルつきの例から学ぶ認識器(フェーズ 5)、領域ごとの分岐、分岐の一歩としてのリンク(フェーズ 7)。
- エディターでのチャンク単位のレーン。API は受け付けます。
先に要るもの。 なし。フェーズ 2 は完了しました。
見せてはならないもの。 どの実験も計測していない、ルーターごとの指標やエンドツーエンドのスコア。何も読まない信頼度のしきい値。インストールが返していないタイプ。
フェーズ 3 — Data & labels:タイプ、フィールド、レビューキュー、データセット 完了
画面が見せるもの。
- 顧客の文書タイプ。それぞれがフィールド(テキスト、日付、金額、ID、会社、カテゴリ)と形式シグネチャを持ちます。
- 人が答えを承認または修正するレビューキュー。
- 「良くなった」の意味を決めるデータセット。教えるための組と評価のための組があります。
今あるもの。
- 分類ファセットと抽出スパンは、リクエストごとに答えます。
- 呼び出し側自身のラベルは
EncodeRequest.metadataに乗ります。 - 保存した文書は
DocumentStoreとVectorIndexの背後に残ります。 - ベンチマークのラベルつきケース(
benchmarks/manifest.json)が、ラベルつきページに要るものを示します。これはリポジトリにあり、プロダクトにはありません。
3a、提供済み: 永続的なストアと文書タイプ。
- 3 つのストアのバックエンド:
memory、sqlite(1 つのファイル)、postgres(すべてのインスタンスが共有するデータベース)。どれも同じ適合テストを満たし、検索を同じように順位づけます(indx-ranking)。 - 3 つ目のストアのポート
SchemaStoreと/v1/types。タイプは、キー、ラベル、フィールド(テキスト、日付、金額、ID、会社、カテゴリ)、そのタイプを形式シグネチャで認識するパーサーです。タイプはインストールごとに 1 つのワークスペースのもので、失効せず、書けるのは運用者のトークンだけです(ADR-0075)。 - データとラベルの画面が、タイプを一覧し、フィールドとシグネチャを編集し、新しいタイプを作ります。 7 つのテンプレート(請求書、契約書、注文書、履歴書、議事録、検査成績書、P&ID)は、それぞれフィールドつきのタイプを 1 クリックで追加します。コピーなので、編集してもテンプレートは変わりません(ADR-0086)。トークンのないホストは、タイプが読み取り専用だと述べます。
- デプロイ済みのホストはすべてをメモリに保存し、トークンを設定しないので、タイプとラベルは読み取り専用です。マネージドな Postgres を後ろに置くことは先送りです。
3b、提供済み: レビューキュー。
- 4 つ目のストアのポート
LabelStoreと/v1/labels。実装はmemory、sqlite、postgresです。ラベルは 1 つの答えへの判定で、approved、正しい値を添えたcorrected、rejectedのいずれかです。判定したものを写し取ります。文書のダイジェストと名前、ブロック、ページと枠、そしてエンティティまたはファセットです。元の保存された文書より長く残り、インストールのもので、運用者のトークンで書きます(ADR-0076)。 - ラベルの ID は判定した答えから導くので、同じ答えへの 2 つ目の判定は 1 つ目を置き換えます。
- 抽出画面は各出現に、タグ画面は文書の各ファセットに判定を受けます。訂正は入力するか、次点から選びます。どちらも文書の答えのうちいくつがレビュー済みかを述べます。キューは文書の答えからそのラベルを除いたもので、別に保存するキューはありません。
- データとラベルの画面は、保存したすべての判定を一覧し、数は保存した行の数です。
- 誰がレビューしたかは、クライアントが名乗れる名前で、身元ではありません。認証はまだ先です。
3c、提供済み: 評価の組を分けたデータセット。
- 5 つ目のストアのポート
DatasetStoreと/v1/datasets。実装はmemory、sqlite、postgresです(ADR-0077)。データセットは、キー、名前、目的(trainingまたはevaluation)、任意でタイプ、そして文書です。各文書はダイジェストと写し取った名前です。 - メンバーは文書単位です。文書を加えると、それに保存されたすべての判定が入るので、1 つの文書が半分学習に、半分評価に入ることはありません。
- 同じタイプの評価と学習の両方のデータセットに入る文書はありません。サーバーはそれを拒み、その文書と、すでに使われているデータセットを名指します。
- データセットはライブのビューです。例は、その文書が今持つ判定です。各実行が採点したものはフェーズ 4 が記録します。
- 抽出画面では、判定がそれの埋めるタイプのフィールドを名指せるので、評価の組をフィールドごとに採点できます。
- データとラベルの画面は、データセットを作り、複数の文書をまとめて加えたり外したりし、レビュー待ちの文書を示し、それぞれの文書と保存した判定を数え、データセットをラベルとともに JSON でダウンロードします。
ほかの仕事に残したもの。
- ページとチャンクのファセットへの判定、どのレーンも見つけなかったエンティティへの判定。
- クエリやペアのデータセット(フェーズ 6)。フェーズ 4 は実験が採点するラベルを凍結するので、データセット自身のバージョンは要りません。
先に要るもの。 なし。フェーズ 3 は完了しました。
見せてはならないもの。 タイプごとの精度、成長チャート、保存した例の数ではない例の数。
フェーズ 4 — Experiments:確認済みのページですべての方法を試し、昇格する 完了
画面が見せるもの。 1 つのタイプについて、候補のルート(リーダー、チャンカー、方法)を、人がすでに確認したページで採点します。見せるのは、正しいフィールド、まだ人が要るページ、コスト、時間です。結果はフィールドごとに、コストに対する精度として示します。Promote ボタンで勝者をルーターの次のバージョンにします。
立ちはだかっていたもの。 ロードマップは、このフェーズにこれ以上要るものはないと述べていました。実際には先に 3 つが要りました。
- 保存した文書はバイトを持たなかったので、別のルートで読み直せるものがありませんでした。
- サーバーの中に、1 つのリクエストより長く続くものがありませんでした。
- ベンチマークの「正しいフィールド」は、値がページのテキストのどこかに現れることを確かめるだけでした。抽出器が答えたものも、レビュー担当者の判定も読みませんでした。
届けたもの。
- 読み直せる評価の組(ADR-0081)。7 つ目のストアのポート
SourceStoreが、保存した文書を読んだ元のソースを、訪問者の下で同じ失効時刻まで保存します。文書をデータセットに加えるとソースをインストールへ写し、データセットがそれを名指す間は残ります。データとラベルの画面は、データセットの文書のうちいくつが読めるかを示します。ソースストアを名指さないホストは、これまでどおり何も保持しません。 - 採点の核は 1 つ(ADR-0082)。
indx-evaluationはワイヤの型の上の純粋な関数を持ち、リポジトリのベンチマークのエンティティの再現率もこれを呼びます。レビュー担当者の判定は期待です。承認は答えを、訂正は訂正後の値を、却下はその答えがないことを期待します。ルートのマージした答えが、NFKC で畳んだあと、そのページにその答えを持てば正解です。オフセットは比べません。候補のチャンカーが動かすからです。 - 実験。 8 つ目のストアのポート
ExperimentStoreと/v1/experiments。実験は 1 つのタイプの評価データセット、ルーター、候補を名指し、候補はそれぞれルーターのブランチです。文書が持つラベルを凍結し、ルーター自身のそのタイプのブランチが常に最初の候補になるので、ほかの候補にはどれも測定した基準があります。各候補は各文書を、それがなるはずのルーターのバージョンとして読み、文書には読む前にタイプが付きます。 - バックグラウンドでの実行(ADR-0083)。ジョブのランナーはデプロイが名指すプラグインで(
INDX_JOB_RUNNER)、indx-jobs-memoryが、サーバーのプロセスの中のワーカースレッドで、実験を 1 度に 1 つ走らせます。各文書の上の各候補はそれぞれ独立に保存される結果なので、進捗はストアが持つものそのものです。止まった実行は採点済みのセルから再開し、ある文書で失敗した候補はエラーとともに記録されます。 - 昇格。 そのタイプのブランチを置き換えたルーターの次のバージョンを公開し、そのバージョンは元になった実験と候補を名指します。候補がすべての文書を採点していなければ拒み、実行が測ったバージョンより先にルーターが進んでいても拒みます。取り消しはルーターの画面の復元です。
- 実験の画面。 新しい実験のフォームがあり、候補はルーターのブランチと同じように編集でき、インストール済みの抽出器ごとに 1 つ加える近道があります。候補ごとに、当てた確かめた答え、まだ人が要るページ、結果が報告したコストと時間を示し、本番に対する倍率は両方が同じ文書を採点したときだけ示します。続いて同じ答えをフィールドごとに、そしてコストまたは時間に対する正解数を示します。実行がまだないときは、画面がそう述べます。
- 状態を持つドメインは独立したパッケージです(ADR-0080)。
indx-workspaceがインストールと訪問者の保持するものを持ち、indx-app-serverはトランスポートだけです。
ほかの作業に残したもの。
- アシスタント、「なぜかを尋ねる」、言葉での推奨(フェーズ 10)。画面は最も正確な候補に印を付けるだけで、何も推奨しません。
- 時間を追ったルーターのバージョンごとの精度と、ルーターごとの指標(フェーズ 8)。
- フィールドの種類ごとの比較。照合は畳んだあとの完全一致なので、別の書き方の日付は一致しません。
- 顧客のデータでの検索と表の採点(フェーズ 6)、そして 1 つのレーンの答えへの判定。
- 実験に候補を足すこと。古い実験から新しい実験を作ります。
- プロセスより長く生きる実行、複数のインスタンス、
/v1/jobs(フェーズ 8 と 9)。 - デプロイ済みのホストはすべてをメモリに持ち、トークンを設定していないので、実験を見せません。
先に要るもの。 なし。フェーズ 4 は完了です。
見せてはならないもの。 どの実行も生み出していない推奨、スコア、コスト倍率。実行がまだないときは、画面がそう述べます。
フェーズ 5 — 例からの認識と、few-shot の抽出とタグづけ 計画中
画面が見せるもの。
- Parse は、ページが何として認識されたかと、その理由(最も近かったラベルつきページ)を述べます。
- Extract は、顧客のラベルつきページから引いた例を見せます。
- Tag は、最近傍が投票したラベルを見せます。
今あるもの。
- 認識はコードで書かれています。ADR-0045 の 2 文書の規則の下の形式シグネチャです。
- 埋め込みと
/v1/searchは、最も近い保存済みチャンクをすでに見つけられます。
欠けているもの。
- ラベルつきの例から顧客のタイプを認識すること。しきい値を下回るページはレビューへ送ります。
- few-shot 抽出。最も近い承認済みページを、例として抽出レーンに渡します。
- 最も近いラベルつき文書から引く、タグの投票。
先に要るもの。 フェーズ 3 のラベルつきの例。そして、few-shot のルートが置き換える相手に勝つかどうかを示すためのフェーズ 4。
見せてはならないもの。 インデックスが返していない近傍、類似度、投票。
フェーズ 6 — Embedding spaces:「似ている」の意味を述べ、それを教える 進行中
画面が見せるもの。
- 設備の状態、商取引の条件、図面のレイアウトといった顧客の空間。それぞれが、観点、含めるタイプと部分(テキスト、表のセル、抽出フィールド、ページ画像)、モデル、バージョンを持ちます。
- 前後の「最も近い 5 件」。正誤の印がペアになります。
- 顧客のテスト質問での hit@5。
- Extract、Tag、Search での空間バージョンの切り替え。
今あるもの。 4 つの空間:default-text、minilm-multilingual、clip-vit-b32、hosted-text。リクエストごとに embedding_space_ids で使うものを名指し、/v1/embed がクエリを同じ空間でエンコードします。
欠けているもの。 順に 3 段階です。
- 設定としての空間。 同梱のモデルの上に、観点、含めるタイプと部分を保存し、バージョンを持たせます。
- 正誤のペアから学ぶ空間。 たとえば同梱モデルの上のアダプターです。各バージョンは、昇格の前に顧客自身のテスト質問での hit@5 で採点します。
- Use の画面でのバージョンの切り替え。
先に要るもの。 タイプ、ペア、テスト質問のためのフェーズ 3。バージョンを採点するためのフェーズ 4。
見せてはならないもの。 顧客の質問で計測していない hit@5、前後の比較、下流の改善。
フェーズ 7 — 関係、メタデータ、Compare 計画中
画面が見せるもの。
- 同じ設備や同じ仕入先のように、共有するメタデータで関係づけた文書を実線で描きます。
- 空間での類似だけで関係づけた文書は、提案として破線で描きます。
- 1 組について、違いに印をつけたフィールドごとの比較と、関係を確かめるか退けるボタン。どちらの答えもフェーズ 6 のペアになります。
- 同じメタデータから作る検索のファセットと、リンクに沿って広げた結果。
今あるもの。 2 つの文書を関係づけるものはありません。ADR-0029 と ADR-0037 はどちらも、「2 つのスパンの間の関係」をポートの形を開き直す出来事として名指しています。
欠けているもの。
- 関係の戻り値の形。ADR で決めます。
- 保存ストアの上の文書間リンク。
- マスターへのメタデータの正規化。同じ仕入先のあらゆる表記を 1 つの値にします。
- 正規化したフィールドでの比較。
- メタデータで絞り込み、リンクで広げる検索。
先に要るもの。 フェーズ 3 のフィールドと、永続的なストア。
見せてはならないもの。 2 つの保存文書から計算していない関係、類似度、違い。
フェーズ 8 — Quality と Operations:すべての文書をまとめて見る 計画中
画面が見せるもの。
- Quality:タイプとタスクごとの精度、確信度の分布、メタデータの充足と正規化、タグの割合、ラベルづけが最も効く場所。
- Operations:
- ルートごと・日ごとのページ数。
- ルーターの健全性(量、自動でルーティングした割合、時間、エラー)。
- 経過時間と理由ごとのレビューキュー。
- 承認待ちの改善の実行。
- 復元できるバージョン履歴。
今あるもの。 エンコードはそれぞれ、答えたコンポーネントをすべて名指しし(ADR-0027)、保存した文書は結果の全体を持ちます。トラフィックを記録するものも集計するものもありません。
欠けているもの。
- 実行ごとの記録。計画、ルート、リーダー、時間、エラー、レビューの結果を、オーナーごとに残します。
- それに対する集計。
- 一覧でき、復元できるルーターと空間のバージョン。
先に要るもの。 フェーズ 2 のバージョン、フェーズ 3 のキュー、そして「精度」が計測値を意味するためのフェーズ 4 の評価。
見せてはならないもの。 描く元のトラフィックがないうちのチャート。期間の選択は、最初に記録した実行より前へは決して届きません。
フェーズ 9 — 規模のあるラベル:教師モデル、ルール、合成のバリエーション、改善のポリシー 計画中
画面が見せるもの。 人の注釈の隣に、情報を加える方法を 3 つ足します。
- 教師モデルがラベルのないページにラベルをつけ、人が抜き取りで確かめます。
- ルールを弱いラベルとして使います。
- 承認済みページの合成のバリエーション。
Operations には、十分な新しいラベルが集まったら学習し直し、決まった間隔で評価し直し、良くなったバージョンを自動で昇格する(または先に尋ねる、報告だけする)ポリシーが加わります。
今あるもの。
- ビジョンのレーン(
generic-vlm)と LLM のレーンは、リクエストごとに答えます。 - 形式シグネチャと
patterns抽出器は、手作りのルールです。
欠けているもの。
- 教師。同じレーンをオフラインで一括実行し、各結果をレビュー待ちのラベルとして保存します。承認済みとしては決して保存せず、抜き取りの確認が一致しないバッチは捨てます。
- レビュアーの一致で重みをつけたルール。ルールが単独でルーティングの信号になることはありません。
- 生成したバリエーション。どれにも方法を名指しします。
- ポリシー。既定は「先に尋ねる」で、どの指標かが悪くなるバージョンは決して昇格しません。
先に要るもの。 フェーズ 3、4、8。
見せてはならないもの。 データを増やすと何が起きるかの予測。予測はプロダクトのモデルであって、プロダクトの計測ではありません。
フェーズ 10 — アシスタント:indx で改善する、ルーターを下書きする 計画中
画面が見せるもの。
- Experiments では、方法がなぜ勝つかを説明し、新しい候補を提案し、その評価を動かすチャット。
- Routers では、1 文を顧客のタイプ、メタデータ、空間の上のルーターの下書きにする機能。
今あるもの。 LLM のレーンが共有するチャットモデルのアダプター indx-llm(ADR-0038)。
欠けているもの。 両方のアシスタント。それぞれが提案してよいのは、API が実行できる行動だけです。候補のルート、ルーターの下書き、評価の実行です。引用してよいのは、実際に行った実行だけです。下書きは、人が公開するまで未公開のままです。
先に要るもの。 フェーズ 2 と 4。アシスタントが提案できるのはルーターが表せるものだけで、引用できるのは評価が計測したものだけだからです。
見せてはならないもの。 どの計測も裏づけない診断。
やりたいが、まだ予定に入れていない作業です。青写真の画面ではないので、3 つの状態のどれも持たず、フェーズの順序も待ちません。
アカウント — ユーザー名とパスワード。管理者が発行する招待で参加する 先送り
見せるもの。
- サインインのページ。ユーザー名とパスワードです。
- 招待キーがあるときだけ開くサインアップのページ。キーは管理者が発行し、1 度だけ使えます。
- 管理者には、発行した招待とそれぞれが使われたかどうか、そしてユーザーの一覧。
今あるもの。
- 訪問者は
indx_ownerのクッキーです。これが名指すのはブラウザで、人ではありません。保存した文書はこのクッキーのものです。 - 共有の秘密が 1 つ。運用者のトークン(
INDX_WORKSPACE_TOKEN)が、タイプ、ラベル、データセット、ルーター、実験を書き込みます(ADR-0075)。これを持つ人が運用者です。 - ラベルのレビュー担当者は、クライアントが述べる名前で、身元ではありません(ADR-0076)。
欠けているもの。
- ユーザー、パスワードのハッシュ、セッション、招待。ほかと同じく、ストアのポートの後ろでインストールが持ちます。
- 管理者。最初の管理者が誰か、招待をどう発行し、一覧し、取り消すか。
- 保存した文書の持ち主が、サインインしたユーザーになること。人が保存したものが、別のブラウザでもその人についてきます。
- サインインしたユーザーが何を書き込めるか。今はトークンが、それを持つ全員について決めています。
- サーバーがセッションから設定する、ラベルのレビュー担当者。
- これらすべての ADR。トークンを置き換えるか残すかを決め、クッキーのもとで保存した文書がどうなるかを述べます。
先送りの理由。 デプロイ済みのホストはすべてをメモリに保存するので、アカウントは再起動を越えて残りません。その後ろにマネージドな Postgres を置くことも先送りで、そちらが先です。
先に要るもの。 デプロイ済みのホストの、再起動を越えて残るストア。
見せてはならないもの。 サーバーが認証していないレビュー担当者や持ち主。
ガイドツアー — 改善のループを、実在の文書で 1 歩ずつ 先送り
見せるもの。 サイドバーだけでは伝わらないループを案内するツアーを、ボタン 1 つで始めます。タイプ、ラベル、データセットは、目の前で 1 つ作られるまで、新しいユーザーにはほとんど意味を持ちません。ツアーは各ステップを自分で実行し、そのステップが何のためで何を生んだかを 1 文で述べます。
- 文書を保存し、Parse で開く
- フィールドを持つタイプを定義する
- Extract で答えを承認または訂正する。これがラベルになります
- その文書を評価用のデータセットに集める
- 実験を走らせ、勝った候補を昇格する
ユーザーはどのステップからでも引き継ぎ、手で続けられます。
今あるもの。
- ホストのサンプル。データストアが 1 クリックで保存します。
- 同じ手順は、すでに 1 度書かれています。
indx-demosのtourクリップが、実際の画面をこの順に操作し、各コントロールをメッセージキーで名指します(ADR-0085)。これはアプリの横で動く録画スクリプトで、アプリが動かすものではありません。 - プレースホルダーのページ。各セクションが何のためかを言葉で述べます。
欠けているもの。
- Web アプリの中のツアー。各ステップはコントロールに結びつき、そのコントロールが送るリクエストを送ります。
- ツアーのための短い文書。それぞれ 1〜2 ページで、同じタイプのものが 2 つ以上あり、タイプ、フィールド、評価用のデータセットのそれぞれに入れるものがあること。今のサンプルはリーダーを見せるために選んだもので、ツアーには長すぎます。
- 訪問者が書き込める場所。タイプ、ラベル、データセット、実験はインストールのもので、運用者のトークンで書き込みます。デプロイ済みのホストはトークンを設定していません。そこでは、ツアーは Search の後で止まります。
先送りの理由。 新しいユーザーが最初に来るのはデプロイ済みのホストで、そこは Search より先のすべてのステップが読み取り専用です。ツアーが案内する画面も、フェーズ 5 と 6 でまだ変わります。変わるたびにツアーのステップが動きます。
先に要るもの。 上のアカウント。デプロイ済みのホストの訪問者は、これでタイプとラベルを書き込めるようになります。フェーズ 5 も先に終えるほうがよいです。ツアーを、Parse、Extract、Tag の答えを変える訂正で終えられるからです。
見せてはならないもの。 用意した答え。ツアーの文書は、インストール済みのリーダーが読む実在のファイルで、各ステップはサービスがその文書に返したものを見せます(ADR-0073)。
青写真が描き、プロダクトが作り出してはならないもの
Section titled “青写真が描き、プロダクトが作り出してはならないもの”以下は青写真の中の例示です。Web アプリにそれぞれが現れるのは、何か実在のものがそれを生み出してからです。
- あらゆる精度、hit@5、適合率、忠実度の数値と、あらゆる前後の差分
- 方法カードのスコア、レビューの割合、コストや時間の倍率
- あらゆるチャート:成長、トレードオフ、バージョン履歴、確信度のヒストグラム、ヒートマップ、週ごとの系列、日ごとのページ数、タグの散布図
- 「データを増やすと何が起きるか」の予測
- ラベル、例、ペア、キューの数、量、時間、エラー率、予算
- サンプルのワークスペース、文書、枠、値、近傍、関係、要約
- チャットの答え