社内ローカルRAGシステム
機器・アプリ・データ・アクター 設計概要

作成日: 2026-06-08 / 目的: 内部会議(14:30〜)進捗報告資料

システム定義

社内のプロジェクト資料・議事録・動画を横断検索できる、完全ローカルのAI検索システム。データは社外に一切送信しない。社員はSlackまたはAnythingLLM(ブラウザ)から利用する。

本システムの役割は「考えること」ではなく「情報を探してまとめること」。社内固有の文脈をMarkdownに整理し、ChatGPTやClaudeのような外部AIに渡す入力を作ることで、社内情報の安全性を保ちながら外部AIの推論力を活かす橋渡しを担う。

UIの使い分け

UI主な利用者用途
Slack Bot全社員日常的な照会・質問
AnythingLLM管理者・ヘビーユーザー文書管理・深い調査・レポート生成

強み・弱みの定義

このシステム(ローカルRAG)
強い
社内固有情報の検索・収集・md化
弱い
深い推論・最新情報・複雑計算
役割
文脈を作る
外部LLM(Claude / GPT-4o 等)
強い
推論・分析・文書生成・最新情報
弱い
社外秘情報の参照(送れない)
役割
文脈を使って考える

強みの詳細

#強み理由
1プロジェクト固有情報への強さ社外に存在しない自社ナレッジをそのまま検索できる
2データ主権・情報漏洩リスクゼロ推論も検索も社内完結。外部AIへのデータ送信なし
3ランニングコスト ¥0ソフトウェアはすべてOSS。APIコール課金なし
4レイテンシが低いローカル推論のためAPI呼び出し遅延なし
5プロジェクト間の情報遮断ワークスペース分離で情報の混在を防げる

弱みの詳細

#弱み補足
1深い推論・複雑な分析32Bモデルは優秀だが、フロンティアモデルと比べると多段推論で劣る
2最新情報・リサーチ学習データのカットオフ以降の情報は持たない
3ドキュメントの行間を読む力明文化されていない暗黙知・文脈依存の判断は苦手
4数値・計算精度Excelの数値を参照しても再計算・集計は行わない
5単一障害点(SPOF)Mac Studio 1台構成のため障害時は全停止
6ドキュメント品質への依存古い・粗いドキュメントはそのまま回答品質に直結する

外部AIとの役割分担(使い方の型)

型 1 / 最頻ユースケース
ローカル → 外部
社内RAGで関連情報を収集・md化
ChatGPT / Claude に貼り付けて分析・提案・文書作成を依頼
型 2
外部 → ローカル
外部で調べた業界トレンド・競合情報をmd化
社内RAGに取り込み、自社文書と突き合わせて比較・検索
型 3
ローカル完結
日常的な検索・照会
「〇〇プロジェクトの予算の根拠は?」など単純照会はそのまま完結

全体フロー(アクター視点)

アクター操作・行動
社員Slackで @社内AI にメンション
管理者(Osawa)AnythingLLM管理画面でワークスペース・ルール設定
cron(自動)定期的にファイル同期サービスを呼び出す
IT管理者RAG専用アカウント発行・SharePoint権限設定

機器レイヤー

flowchart TD SP["☁️ Microsoft 365 / SharePoint\n(クラウド・社外)\n原本ファイル保管"] OD["🔄 OneDriveアプリ\n読み取り専用アカウントで自動同期"] DAS["💾 外部ストレージ DAS\n⚠️ PEND:TB5知見蓄積待ち\nPDF / Word / Excel / PPT / 動画"] MS["🖥️ Mac Studio M4 Max\n64GB / 1TB SSD\n全サービスをここで動作\n10GbEで社内ネットワーク接続"] PC["👤 社員のPC / スマートフォン\nSlackアプリ / ブラウザ"] SP -->|"OneDrive同期"| OD OD -->|"実ファイル同期"| DAS DAS -->|"TB5接続(選定後)"| MS MS -->|"10GbE 社内LAN"| PC
⚠️ PEND — 外部ストレージ(DAS)の選定は Thunderbolt 5 の知見蓄積後に再調査。Phase 1〜2 は内蔵 SSD で進める。

アプリケーションレイヤー(Mac Studio内)

ポートサービス名技術フェーズ状態
11434Ollama(LLM推論)Go / brewPhase 1設計確定
6333Qdrant(ベクトルDB)DockerPhase 2設計確定
3001AnythingLLM(RAG・チャットUI)DockerPhase 2設計確定
8000HTMLレポート生成サービスFastAPI(Python)Phase 5設計確定
Slack BotPythonPhase 5設計確定
8001Whisper APIサービスFastAPI + WhisperPhase 4実装予定
8002ファイル同期サービスPython / cronPhase 3実装予定
8003PPTX生成サービス(SlideKit)Node.jsPhase 5以降テンプレ待ち

データフロー

データ取り込みフロー(自動・定期)

flowchart TD SP["☁️ SharePoint"] OD["🔄 OneDrive同期\n読み取り専用"] ST["💾 外部ストレージ"] DOC["📄 PDF / Word / Excel / PPT"] VID["🎥 動画(mp4等)"] SYNC["ファイル同期サービス\nport 8002"] WISP["Whisper APIサービス\nport 8001"] TXT["📝 文字起こしテキスト\n_transcript.txt"] ALLM["AnythingLLM API\n文書登録"] ALLM2["AnythingLLM API\n文書登録"] QD["🗄️ Qdrant\nベクトルDB"] SP --> OD --> ST ST --> DOC --> SYNC --> ALLM --> QD ST --> VID --> WISP --> TXT --> ALLM2 --> QD

質問・回答フロー(リアルタイム)

sequenceDiagram actor 社員 participant SlackBot as Slack Bot participant ALLM as AnythingLLM participant Qdrant participant Ollama participant Report as HTMLレポート生成\nサービス 社員->>SlackBot: @社内AI 質問文 SlackBot->>ALLM: RAGクエリ ALLM->>Qdrant: 意味検索 Qdrant-->>ALLM: 関連チャンク ALLM->>Ollama: 推論(Model Router自動切換) Ollama-->>ALLM: 回答テキスト ALLM-->>SlackBot: 回答 + 参照元リンク SlackBot->>Report: レポート生成リクエスト Report-->>SlackBot: HTMLレポートURL SlackBot-->>社員: 回答 + 参照元 + レポートURL

レポート閲覧フロー

flowchart LR A["👤 社員\n(ブラウザ)"] -->|"SlackのURLをクリック"| B["🌐 HTMLレポートサーバー\nport 8000"] B -->|"整形HTMLを表示"| C["📄 レポート表示"] C -->|"PDFをダウンロードボタン"| D["🖨️ PDF出力\nwindow.print"]

名前空間の統一設計

プロジェクト名を軸に4レイヤーが一致する構成。

flowchart LR SP["☁️ SharePoint\n/ProjectA/"] OD["💾 OneDrive同期先\n/外部ストレージ/ProjectA/"] WS["🤖 AnythingLLM\nワークスペース「ProjectA」"] SL["💬 Slackチャンネル\n#project-a"] RP["📄 HTMLレポート\n/reports/ProjectA/"] SP -->|"同じプロジェクト名で統一"| OD OD --> WS WS --> SL WS --> RP

Model Router(自動モデル切換)設計

条件キーワード振り先モデル理由
「翻訳」「要約」「まとめて」Gemma 12B高速(シンプルタスク)
「分析」「比較」「詳しく」Qwen2.5 32B高精度(複雑タスク)
(その他デフォルト)Qwen2.5 32B安全側に倒す
設定はAnythingLLM管理画面のGUI操作のみ。プログラム不要。

フェーズ別進捗

現在地: 設計フェーズ完了。Phase 1〜2 の実機セットアップへ移行準備中。

残課題(ペンディング事項)

課題備考
外部ストレージ選定・購入PEND TB5知見蓄積待ち
IT管理者へのアカウント発行依頼RAG専用アカウント・閲覧のみ権限
Mac Studioの固定IP設定192.168.x.x を固定
Phase 1〜2 実機セットアップOllama・Docker・AnythingLLM導入
HTMLレポートCSSデザインロゴ・フォント・カラー確定後
ReGACYテンプレート入稿PPTX生成サービスの前提条件