約10分で分かる全体像

PDF受付から、
人の確認と監査記録まで。

PDFの受付、AIによる解析、人の確認、監査、モデル更新までを統合した文書処理(Document Intelligence)基盤です。 公開版では最小の実証として文書分類を実装し、その先の業務文書分析や設計図面の読み取りを見据えています。

約10分で読めます

ひと言でいうと

文書を解析し、
人の判断と根拠まで管理する。

ReactorFront Portfolioは、ReactorFront(リアクターフロント)が公開する実装例です。利用者を認証してPDFを受け付け、ファイル保存領域と処理待ちのキューを介して、機械学習を実行するプログラムへ処理を渡します。 現在の推論タスクは「請求書」「報告書」の文書分類ですが、システムの中心は分類モデル単体ではありません。

推論結果を人が確認する工程(Human-in-the-loop)で承認・訂正し、機械の出力と人の判断を別々の監査記録として保存します。 さらに、データセット、評価結果、採用モデルを結び付け、モデル更新とロールバックまで追跡できるようにしています。

これは再現手順書ではありません

IT業界で働く方が短時間で構成と設計意図をつかめる概要です。 同じシステムを再構築できるコード解説や手順ではなく、実装範囲、技術判断、検証結果を確認できる粒度にしています。

処理の流れ

受付から監査までを、
非同期ワークフローでつなぐ。

ユーザー操作と時間のかかる推論処理を分離し、各段階の状態と責任を明確にしています。

  1. 01

    PDFを受け付ける

    認証・認可を確認し、PDFと業務レコードを登録します。

    Ingest / API / Object Storage
  2. 02

    AIで解析する

    キューから依頼を受けたMLワーカーが文書を解析します。

    Analyze / Queue / ML Worker
  3. 03

    人が確認する

    利用者が元文書と推論結果を確認し、承認または訂正します。

    Review / Human-in-the-loop
  4. 04

    判断を記録する

    推論、レビュー、モデルの来歴を追跡可能な形で保存します。

    Audit / Audit Trail / Lineage

業務上の価値

MLモデルだけでは、
業務システムにならない。

業務導入では、推論の前後にある認証、状態管理、再実行、レビュー、監査、モデル更新が必要です。 このポートフォリオは、画面とAPI、ML、運用をつなぐ部分まで実装しています。

01

非同期で状態を管理する

推論処理をキューへ分離し、APIは処理状態を返します。タイムアウトや再試行も業務状態として扱います。

02

認証と認可を分ける

ログイン済みであることに加え、対象文書を操作できる所有者かをAPI側で検証します。

03

冪等性と排他制御を持つ

リクエスト再送や同時レビューが起きても、最終判断を重複して確定しません。

04

推論・決定・学習候補を分離する

機械の出力、人の最終判断、将来のデータセット候補を異なるレコードとして保存します。

05

失敗した処理を再実行できるようにする

処理依頼を確実に記録するOutbox、再試行、状態の記録を使い、途中で停止した場所を追跡して再開できるようにします。

端から端まで通した4つの実装単位

動く一連の流れを保ちながら、
実証範囲を広げた。

画面、API、データ保存、非同期処理、テストを端から端まで通す実装単位(Vertical Slice)を4つに分け、段階ごとに実行可能な状態を維持しました。 2026年8月12日時点で、4本すべての受け入れ条件を満たしています。

01

PDF受付と非同期処理

APIがPDFを受け付け、Outboxとキューを介してMLワーカーへ処理を引き渡します。再試行しても業務状態を壊しません。

示せること画面 / API / オブジェクト保存 / キュー / 再試行

02

認証付きレビューと排他制御

文書の所有者だけが推論結果を承認・訂正できます。同時操作やリクエスト再送が起きても、最終判断は一度だけ成立します。

示せること認証 / 権限確認 / 重複防止 / 監査記録

03

評価して更新・復旧できるモデル管理

人の訂正は学習候補として分離し、固定したデータセットで現行モデル(Champion)と更新候補(Candidate)を比較してから採用します。

示せることデータセット / 評価の合格条件 / 来歴 / ロールバック

04

実AWSでのデプロイと撤収

Terraformで一時環境を構築し、認証付きE2Eを実行。destroy後は別経路で残存リソースまで検査します。

示せることAWS / Terraform / OIDC / E2E / 残存リソース検査

各技術の役割

画面、API、処理依頼、AI、AWSを分けてつなぐ。

各プログラムが担当する作業を分け、受け渡すデータと条件を明示して接続しています。

利用者画面(Frontend)

Webアプリケーション

認証、PDFアップロード、処理状態、推論結果とレビューUI

Next.jsReact
業務処理と状態管理

API

認可、業務状態、Outbox、レビュー確定、監査ログを管理

FastAPIPostgreSQL
処理依頼の配送(Messaging)

キュー

APIとワーカーを分離し、処理依頼の配送と再試行を管理

RabbitMQOutbox
機械学習による推論

MLワーカー

採用済みモデルを検証してロードし、推論結果とモデル来歴を返す

PythonPyTorch
クラウド実行環境

AWS

Terraformによる構築、E2E、可観測性、destroyと残存確認

TerraformFargate

分類から広げられる範囲

分類は最初のユースケース。
文書分析・図面解析へ。

現在の公開版は分類結果を返しますが、文書受付、非同期処理、人のレビュー、監査、モデルライフサイクルを担う共通基盤は、別の文書解析タスクにも再利用できます。

01 / 項目抽出(Extract)

項目・表の構造化

請求書や注文書の項目、明細表、フォームの値を抽出し、業務システムで扱える構造化データへ変換する。

02 / 内容分析(Analyze)

業務文書の分析

契約書や報告書の重要項目、記載漏れ、文書間の差分を検出し、人が確認すべき箇所を提示する。

03 / 図面解析(Drawing)

設計図面の読み取り

表題欄、文字、記号、寸法、部品候補、改訂差分を座標付きで抽出し、図面レビューへ接続する。

04 / 判断管理(Govern)

判断と来歴の管理

AIの出力と人の訂正を分離して保存し、どのデータ・モデル・評価条件で処理したかを追跡する。

業務システムへ育てられる骨格はある。ただし、対象業務ごとの実証は別途必要です

図面解析や項目抽出は、現在の公開版で実証済みの機能ではありません。導入時には、業務データと正解ラベル(アノテーション)、OCR・レイアウト解析・画像認識モデルまたはCAD/BIM連携、座標を含む出力形式(スキーマ)、専用の確認画面、作業別の評価指標が必要です。セキュリティ、可用性、監視、処理量とコストも業務要件に合わせて追加設計します。

また、現行版は利用者が画面から自由に再学習するサービスではありません。データセットの採用、学習、評価、モデル昇格は、エンジニアがレビュー済みのリポジトリ変更として管理します。

現時点の実証範囲と制約

現在、実証済みなのは
ここまで。

公開版で動作確認した範囲と、本番導入に必要な追加設計を分けて記載します。

  • 実証済みのMLタスクは、公開可能な合成PDFによる英語文書2種類の分類です。
  • 評価データは小規模で、実業務における精度や未知データへの一般化性能を保証しません。
  • 項目抽出、文書分析、OCR、表・図面解析は拡張構想であり、公開版には未実装です。
  • AWS環境は常時稼働させず、月次検証時に構築し、E2E後に破棄します。
  • 高可用性、災害復旧、一般利用者向けの登録・課金、SLAは実証範囲に含みません。

公開リポジトリ

実装と検証記録は、GitHubで公開。

ソースコード、テスト、ADR、モデル評価、AWSの検証結果を公開リポジトリで確認できます。READMEと詳細資料は英語です。

GitHubで実装と検証記録を見る