SHEET FIG.2 — /work/multimodal-document-delivery
CASE STUDY § 01-2
マルチモーダル文書処理 PoC の顧客環境化
技術文書 (PDF / 画像)
INPUT
構造化データ · 検証証拠
OUTPUT
認証 · 提供環境 · RCA
SCOPE
課題
画像と PDF 内のベクトル・テキスト情報を扱う文書処理 PoC があった。一方、顧客環境で検証するには、組織認証、利用者ごとの作業領域、シークレット管理、モデル接続、サービス運用までを一つの提供単位にする必要があった。
担当範囲
- 画像入力に対応した既存実装を引き継ぎ、顧客提供に必要なアプリケーション層を担当した
- 組織 ID 基盤による OIDC を導入し、既存の利用者単位の作業領域を組織 ID に紐付けた。マネージド ID によるシークレット取得とサービス起動設定も実装した
- LLM API の接続先を許可済みリソースへ限定し、環境ごとのモデル名を安全に解決する構成へ改めた
- 証明書、リバースプロキシ、モデル接続の障害を層別に切り分け、顧客・基盤担当と責任境界を明確にして開通させた
実データでの検証
- 単体テストが緑でも顧客可視の出力が消える回帰を検出し、旧実装・新実装・旧データ・新データの対照から PDF の文字分割を原因として特定した
- 修正と再発防止テストを入れたうえで顧客環境へ再配置し、実データの構造化結果を再確認した
- 大きな LLM リクエストと割当クォータの不整合を特定した。クォータ調整後に、ブラウザから一連の業務フローを再検証した
性能と要件の実例
- 待ち時間: 利用者 3 人の同じ入力が直列に待たされ、最長 75 分かかっていた。原因を「処理が直列」と「参照キャッシュが利用者ごと」の 2 つに切り分け、まず同時実行 3 の並列化を入れた。続けて、キャッシュの鍵を中身のハッシュにして全員で共有する案を研究リードに提案し、合意して実装した。共有後は、同じ入力の処理が約 1 時間から約 4 分になり、LLM の呼び出しはゼロになった
- 作る前に目的を確かめる: 「マスキング」の要望に対して、最初の会議で「LLM に送りたくないのか、人に見せたくないのか」を確かめた。人に見せない目的だと確定してから画面と API を作り、作り直しを避けた
- 最小の修正で済ませる: 仮の受入条件と動く画面を先に出したところ、「結果が見つからない」という声が 2 人から出た。画面の導線を全面的に作り直す案は採らず、結果を先頭に出す最小の修正で解消した
進め方
- 画像入力は VLM API、PDF はベクトル・テキスト解析を主とする既存実装を、顧客環境で運用できる提供形態へ接続した
- 組織 ID 基盤、マネージド ID によるシークレット取得、LLM API の接続先とモデル設定を fail-closed で配線した
- テスト通過後の出力回帰を実データの対照実験で PDF 文字分割へ切り分け、修正と再発防止テストを追加した
- LLM リクエスト量と割当クォータの不整合を特定し、調整後にブラウザから一連の業務フローを再検証した
- 複数の利用者が同じ入力を流すと直列待ちで最長 75 分かかった。原因を直列処理と利用者ごとのキャッシュに切り分け、並列化し、キャッシュの共有を研究リードに提案して合意した