プロジェクト概要
権限を守りながら、根拠を示して答える。企業運用に耐えるマルチモーダルRAG基盤。
企業文書は画面レイアウトや遷移図、Excel表など視覚情報への依存が大きく、テキスト中心のRAGでは取りこぼしが出ます。加えて企業では権限制御と根拠提示が必須です。そこで全文・ベクトル・画像・Graphを組み合わせたハイブリッド検索と、LangGraphによる回答品質ゲートを実装し、単なる回答ではなく「継続運用できるAI基盤」として設計しました。
企業のPDF/Excel/PPT/Word等を対象とした、マルチモーダルAIナレッジ基盤(OSS)。ハイブリッド検索・非同期文書処理・VLM解析を柱に、「チャットを作る」のではなく「企業で継続運用できる回答基盤を作る」ことを狙って個人開発しました。
プロジェクト概要
企業文書は画面レイアウトや遷移図、Excel表など視覚情報への依存が大きく、テキスト中心のRAGでは取りこぼしが出ます。加えて企業では権限制御と根拠提示が必須です。そこで全文・ベクトル・画像・Graphを組み合わせたハイブリッド検索と、LangGraphによる回答品質ゲートを実装し、単なる回答ではなく「継続運用できるAI基盤」として設計しました。
背景・課題
技術ポイント
担当(役割)
アーキテクチャ ①
アップロードは受信と状態管理に限定し、重い解析はKafka経由で非同期実行。メタ情報・検索索引・原本・関係をそれぞれ最適なストアに保存します。
flowchart TD
U["Upload API(受信 + 状態管理)"] --> K["Kafka"]
K --> DP["Document Processor(解析 / 分割 / 構造化 / VLM補強)"]
DP --> PG["PostgreSQL(メタ情報 / ACL)"]
DP --> ES["Elasticsearch(全文 + ベクトル索引)"]
DP --> MI["MinIO(原本)"]
DP --> GR["Graph(PostgreSQL + Apache AGE)"]
アーキテクチャ ②
検索段階で権限を前置適用してからハイブリッド検索を行い、LangGraphの5ステップで回答品質を担保。Criticが根拠不足と判定した場合は断定せず保留します。
flowchart TD
Q["質問"] --> ACL["権限フィルタ(owner / public / org)"]
ACL --> HY["ハイブリッド検索(全文 + ベクトル + 画像 + Graph / RRF融合)"]
HY --> LG["LangGraph:Planner → Retriever → Reasoner → Critic → Answer"]
LG --> ANS["回答 + 証拠(chunk / source / page / 画像)"]
全文RAGの置き換えではなく「関係性を問う質問」への補強チャネルとして設計。画面遷移や依存関係などの質問時に並列で動かし、最後に融合します。
根拠コンテキスト制約と証跡返却を基本とし、根拠不足時はno-evidence方針で断定を回避。Faithfulness指標でオフライン評価も継続しています。