Skip to content

DocRefinery — ドキュメント精製

DocRefinery は AgentCraftLab のドキュメントクリーニングおよび構造化出力機能です。複数の異なる形式のソースファイル(PDF、DOCX、PPTX、XLSX、HTML、TXT、画像)を自動的にクリーニングし、標準的な構造化仕様書に統合します。


1. コアコンセプト

複数のソースファイル → クリーニング(ノイズ除去)→ 構造化抽出(LLM)→ 仕様書
コンセプト説明
精製プロジェクト複数のソースファイルとバージョン管理された出力を含むワークスペース
クリーニング生ドキュメントを型付き要素(Title、NarrativeText、Table、ListItem…)に分解し、ヘッダー/フッターを除去、空白を正規化
スキーマテンプレート出力ドキュメントの構造を定義(例:ソフトウェア要件仕様書は 13 セクション)
高速モード単一の LLM 呼び出し、小さなファイルに最適
精密モードマルチレイヤー Agent + 検索、大きなファイル/複数ファイルに最適

2. 操作フロー

Step 1:プロジェクトの作成

  1. サイドバーの 🏭 Doc Refinery をクリック
  2. 右上の 作成 をクリック
  3. プロジェクト名と説明を入力

Step 2:ファイルのアップロード

  1. プロジェクトに入る → ファイル タブ
  2. アップロードエリアにファイルをドラッグ&ドロップ(複数ファイル対応)
  3. 各ファイルの処理進捗がリアルタイムで表示(クリーニング → インデックス作成)
  4. 完了後、各ファイルのステータスアイコンが表示

ファイルステータス:

アイコンステータス説明
Indexedインデックス完了、精密検索で使用可能
🔄Indexing検索インデックスを構築中
Pendingインデックス待ち
⚠️Failedインデックス失敗、🔄 でリトライ可能
⏭️Skipped高速モード、インデックス不要

Step 3:クリーニング結果のプレビュー

  1. プレビュー タブに切り替え
  2. ドロップダウンからファイルを選択
  3. 各要素が色分けされたタイプバッジで表示:
バッジの色要素タイプ説明
Title見出し
グレーNarrativeText本文段落
Tableテーブル
ListItemリスト項目
CodeSnippetコードブロック
ピンクImage画像

Step 3.5:ファイルの選択

各ファイルの横に チェックボックス があります:

  • ☑ チェック済み = 生成に含める(デフォルト:全てチェック)
  • ☐ 未チェック = 除外、ファイルは半透明 + 取り消し線で表示
  • ファイルを削除する必要はなく、再チェックでいつでも含めることができます

Step 4:スキーマとモードの設定

  1. 設定 タブに切り替え
  2. スキーマテンプレート を選択(例:「ソフトウェア要件仕様書」)
  3. LLM プロバイダーモデル を選択
  4. 抽出モード を選択:
モード説明最適な用途
高速全ドキュメント内容 + フルスキーマを単一 LLM 呼び出し小さなファイル(< 10 ページ)、少数ファイル
精密マルチレイヤー Agent + 検索エンジン支援大きなファイル(> 10 ページ)、複数ファイル、高精度が必要
  1. 精密モードでは、オプションで LLM Challenge 検証 を有効化(下記参照)
  2. 保存 をクリック
  3. 構造化出力を生成 をクリック

Step 5:出力の確認

  1. 出力 タブに切り替え
  2. 上部に表示:
    • バージョンセレクター(v1, v2, v3...)
    • 信頼度バッジ(緑 ≥80% / 黄 50-80% / 赤 <50%、Challenge 有効時のみ表示)
    • Markdown / JSON ビュー切替
  3. ソースファイル — このバージョンで使用されたファイルを表示
  4. 欠落フィールド(黄色)= LLM がデータを見つけられなかった
  5. 未確認の質問(オレンジ)= 確認が必要な項目
  6. 検証チャレンジ(紫)= LLM Challenge の結果、セクション別にグループ化、現在値 vs 提案値の比較
  7. Markdown ビュー — 完全レンダリング(見出しレベル、テーブル枠線、リスト、コード表示)
  8. JSON ビュー — 展開/折りたたみ可能なツリー構造、構文ハイライト
  9. コピー または ダウンロード(.md / .json)

Step 6:反復更新

  • 新しいファイルをアップロードまたはチェックボックスを調整 → 設定タブ → 再度 Generate
  • 毎回新しいバージョン(v1, v2, v3...)を生成、上書きなし
  • 出力タブのドロップダウンで異なるファイル組み合わせの出力を比較

3. 精密モードのアーキテクチャ

精密モードは 4 層の Agent アーキテクチャを使用:

Layer 2(アウトライン計画):
  LLM がドキュメント要約を分析 → スキーマのどのセクションにデータがあるか判定 → 検索キーワードを計画

Layer 3(セクションごとの抽出、並列):
  各セクションに独立した LLM 呼び出し →
  検索エンジンが関連チャンクを先に取得 → LLM がそのセクションの JSON のみを抽出

Layer 4(LLM Challenge 検証、オプション、並列):
  2 番目の LLM が Layer 3 の結果を検証 →
  不一致、矛盾、疑わしいフィールドを検出 → 信頼度スコアを付与

Merge(純粋なコード):
  全セクション + Challenge 結果を結合 → 完全な仕様書

メリット:

  • 各 LLM 呼び出しは 1 つのトピックに集中、高精度
  • 検索エンジン支援により、ドキュメントサイズの制限なし
  • セクション間の並列実行で高速
  • LLM Challenge が矛盾とエラーを検出、フィールドごとの信頼度を提供

LLM Challenge 検証(Layer 4)

設定タブで「LLM Challenge 検証」を有効にすると(精密モードのみ):

  1. Layer 3 の抽出完了後、各セクションが 2 番目の LLM により再検証
  2. 結果は信頼度により 3 段階に分類:
信頼度アクション説明
≥ 80%✅ Accept両方の LLM が一致、自動承認
50-80%⚠️ Flag疑問あり、確認が必要
< 50%❌ Reject明確な不一致
  1. 出力タブに表示:

    • 全体信頼度バッジ
    • セクション別にグループ化されたチャレンジ(展開/折りたたみ可能)
    • 現在値 vs 提案値の比較(赤/緑カラム)
  2. トークン使用量は Challenge なしの約 1.5 倍(セクションごとに追加の検証 LLM 呼び出し)


4. サポートされるファイル形式

形式拡張子クリーニング能力
Word.docx見出しスタイル → Title、リスト → ListItem、テーブル構造化
PowerPoint.pptxスライド Shape タイプ分類、Drawing.Table
Excel.xlsx各ワークシート → Markdown Table
PDF.pdfヒューリスティック分類(タイトル、リスト、フッター検出)
HTML.htmlタグの直接マッピング(h1→Title, table→Table)
プレーンテキスト.txt, .md, .csvMarkdown 見出し、箇条書き、コードフェンス
画像.png, .jpg, .tiff, .bmpOCR 認識(Tesseract が必要)

5. 組み込みスキーマテンプレート

ソフトウェア要件仕様書

13 セクション:

セクション説明
documentドキュメントメタデータ(タイトル、バージョン、日付、ソース)
project_overviewプロジェクト概要(名称、目的、範囲、制約)
stakeholdersステークホルダー
functional_requirements機能要件(受入基準、MoSCoW 優先度付き)
non_functional_requirements非機能要件(パフォーマンス、セキュリティ、可用性)
data_modelデータモデル(Entity + Fields)
api_endpointsAPI エンドポイント仕様
ui_screensUI 画面リスト
timelineタイムライン + マイルストーン
budget予算内訳
risksリスク評価
glossary用語集
open_questions未確認事項(LLM が自動入力)

カスタムテンプレート: Data/schema-templates/ ディレクトリに JSON ファイルを配置するだけ — コード変更不要。


6. 進捗ログとトークン統計

生成中、フロントエンドにリアルタイムの実行ログが表示されます:

Layer 2: Planning extraction for 13 sections...
Layer 2: Found 8/13 sections with data
Layer 3: Extracting project_overview (3 queries)...
Layer 3: project_overview done (1,200 tokens)
Layer 3: Completed 8 sections
Merging results...
✅ Generated v2 (Precise) | 25.3s | 5,050 in + 3,200 out = 8,250 tokens

最終行に合計時間 + 入力/出力トークン使用量が表示されます。


7. API エンドポイント

メソッドパス説明
POST/api/refineryプロジェクト作成
GET/api/refineryプロジェクト一覧
GET/api/refinery/{id}プロジェクト取得
PUT/api/refinery/{id}プロジェクト更新
DELETE/api/refinery/{id}ソフト削除
GET/api/refinery/{id}/filesファイル一覧
POST/api/refinery/{id}/filesアップロード+クリーニング(SSE)
DELETE/api/refinery/{id}/files/{fileId}ファイル削除
GET/api/refinery/{id}/files/{fileId}/previewクリーニングプレビュー
POST/api/refinery/{id}/files/{fileId}/reindexインデックスリトライ(SSE)
POST/api/refinery/{id}/generate構造化出力生成(SSE)
GET/api/refinery/{id}/outputsバージョン一覧
GET/api/refinery/{id}/outputs/latest最新バージョン
GET/api/refinery/{id}/outputs/{version}指定バージョン
GET/api/schema-templatesスキーマテンプレート一覧
GET/api/schema-templates/{id}テンプレート詳細

Released under the Apache-2.0 License.