NaNi EXECUTION LAB
完全ローカルLLM業務自動化システム — Ollama × Gemma で実現する機密データ社外送信ゼロのAIアシスタント
TOP / 事例 / 完全ローカルLLM業務自動化システム — Ollama × Gemma で実現する機密データ社外送信ゼロのAIアシスタント

ローカルAI・業務自動化

完全ローカルLLM業務自動化システム — Ollama × Gemma で実現する機密データ社外送信ゼロのAIアシスタント

PDF要約・議事録TODO抽出・日報週報生成・写真自動分類を、すべて社内PCで完結。Ollama + Gemma 4 + Python(watchdog) で構築した、フォルダに放り込むだけで自動処理されるローカル完結型AI業務効率化ツールの実装記録。

ローカルLLMOllamaGemmaPythonwatchdog業務自動化情報セキュリティWindows

⚡ ハイライト数値

指標
月額コスト¥0(クラウドAI課金なし)
データ社外送信0 バイト(完全ローカル)
自動化機能6種(PDF・議事録・日報・写真分類×2・分割)
動作 VRAM4-5GB(GTX 1660 Ti クラスで余裕)
応答時間1〜3秒/チャンク(初回ロード後)
ライセンスApache 2.0 + MIT(商用利用OK・社内展開可)
クラウド依存ゼロ(別PC引っ越しも install + pull で完全再現)

背景

製造業や受託開発の現場では、議事録・PDF・写真など 社外送信が許されない機密ドキュメント が日常的に発生する。

そこで、完全にローカルPC内で完結する業務自動化システム を構築することにした。データは1バイトも社外に出ない。


要件定義

区分要件
データ送信完全ローカル(外部APIコール禁止)
動作端末一般的なノートPC(GPU 6GB VRAM クラス)
トリガーフォルダにファイルを投入 → 自動処理
対象機能探す・まとめる・書く・分類する を自動化
ライセンス商用利用可(社内業務で使えること)
運用コスト月額 ¥0(クラウド費用なし)

技術スタック

┌──────────────────────────────────────────────┐
│  LLMランタイム  Ollama(MIT・商用OK)          │
├──────────────────────────────────────────────┤
│  モデル        Gemma 4 E2B-it Q4量子化版       │
│                (Apache 2.0・商用OK・3-4GB)   │
├──────────────────────────────────────────────┤
│  GPU          GeForce GTX 1660 Ti             │
│                (VRAM 6GB・CUDA自動検出)      │
├──────────────────────────────────────────────┤
│  オーケストレーション  Python                  │
│   ├ watchdog        フォルダ監視              │
│   ├ pymupdf (fitz)  PDF処理                   │
│   └ APScheduler     週次バッチ                │
├──────────────────────────────────────────────┤
│  自動起動      Windows Task Scheduler          │
└──────────────────────────────────────────────┘

モデル選定理由(Gemma 4 E2B)

要素検討内容結論
ライセンス商用利用可・利用規約同意不要✅ Apache 2.0
サイズRAM 8GB ノートPCでも動作✅ Q4量子化で 3-4GB
速度チャンク要約に耐える応答速度✅ GPU 4-5GB で快適
マルチモーダル写真分類にVision必須✅ Vision対応
コンテキスト長長文議事録に対応✅ 256Kトークン
多言語日本語ネイティブ品質✅ 140言語対応

LM Studio は GUI が魅力的だったが、業務利用は商用ライセンス必要 のため除外。Ollama 一択とした。


実装した6機能

1. PDF自動分割

処理: Pythonのみ(LLM不要・即時)
用途: 大量ページの請求書・契約書を1ページずつ分割して案件IDフォルダに自動振り分け
仕組み: pymupdf でページ抽出 → ファイル名のパターンマッチで分類

2. PDF要約

処理: チャンク 500〜800字 → Gemma 4 で要約 → 結合
用途: 100ページの仕様書・論文を5分で要約 → Slackに自動投稿(社内のみ)
精度: 重要事項の抽出はほぼ100%、表形式の解釈はやや弱い

3. 議事録 → TODO抽出

処理: 議事録テキスト → Gemma 4 で「次回までのアクション」のみ抽出
用途: 録音文字起こしから自動でアクションリスト生成
フォーマット例:

- [ ] 田中さん: 仕様書 v2.0 のレビュー(〆切:来週水曜)
- [ ] 山田さん: ベンダー A への見積依頼
- [ ] 全員: 次回アジェンダの事前共有

4. 日報 → 週報自動生成

処理: 月〜金の日報5本を集約 → Gemma 4 で週次サマリ生成
トリガー: Windows Task Scheduler(金曜18:00)
特徴: 「箇条書き」スタイル指定でフォーマットを安定化

5. 写真カテゴリ分類タグ付け

処理: Gemma 4 Vision で画像 → 事前定義カテゴリから選択
用途: 現場写真を「設備」「部品」「不良品」「成果物」などに自動仕分け
精度確保: プロンプトで「以下の8カテゴリから1つだけ選んで」と限定

6. 写真案件IDフォルダ自動整理

処理: Pythonのみ(ファイル名規則からID抽出)
用途: Dropbox 監視 → 命名規則からプロジェクトIDを抽出 → 該当フォルダに自動移動


動作フロー

  ユーザー

    ▼  ファイルをフォルダに投入
  ┌─────────────────────┐
  │  watchdog 監視       │
  │  (4種フォルダ並行)  │
  └─────────┬───────────┘
            │ ファイル作成イベント

  ┌─────────────────────┐
  │  処理ルーター         │
  │  拡張子・パスで分岐    │
  └─────────┬───────────┘

       ┌────┴────┐
       │         │
       ▼         ▼
  Python処理   Ollama API
  (PDF分割     (要約・抽出
   フォルダ整理)   分類)
       │         │
       └────┬────┘

       結果ファイル出力


       通知(Slack任意)

すべて 同一PC内 で完結。Ollama は localhost API で Python から呼び出すだけ。


ハマりポイントと解決

1. RAM 不足で「model failed to load」500 エラー

総RAM 15.8GB / 空き 3.6GB / モデル要求 7.2GB
→ CPU実行ではメモリ不足

解決: GPU(GTX 1660 Ti / VRAM 6GB)を Ollama が自動検出し CUDA 実行に切り替え。Q4量子化版なら 4-5GB でVRAMに収まる。

nvidia-smi で確認:
  VRAM 6144MB / 空き 3646MB
  Q4モデル 約4-5GB → 余裕で収まる

2. ollama CLI の PATH 問題

GUI版インストール後、ollama コマンドが PATH に入らない。

# NG
ollama pull gemma4:e2b-it-q4_k_m

# OK
& "C:\Users\81804\AppData\Local\Programs\Ollama\ollama.exe" pull gemma4:e2b-it-q4_k_m

3. fitz.insert_text が日本語フォント非対応

pymupdf で日本語テキストを直接書き込むとエラー。

回避策: テキスト挿入は不要だったため、抽出(page.get_text())と分割(page.extract)のみに絞って実装。実用上の影響なし。

4. 初回 API 呼び出しのモデルロード

[1回目] 500エラー(モデルがVRAMにロード中)
[2回目] 正常応答「はい。」

初回呼び出しから10〜20秒待つだけで安定する。リトライロジックを Python 側に組み込んで解決。


モデルチューニング戦略

ローカルLLMは 「Modelfile + RAG」で8割の効果 を出せる。ファインチューニングは不要と判断。

Ollama Modelfile による業務AI専用設定例

FROM gemma4:e2b-it-q4_k_m

PARAMETER temperature 0.3
PARAMETER top_p 0.9

SYSTEM """
あなたは社内業務アシスタントです。
回答は必ず日本語の箇条書きで、3〜5項目に収めてください。
推測ではなく、入力内容に書かれている事実のみを抽出してください。
"""

これで「議事録要約」「TODO抽出」「日報生成」それぞれに 専用キャラクター を作れる。ディスク増加なし・追加学習なし。

マルチエージェント・パイプライン化

要約AI(temperature 0.2)

チェックAI(temperature 0.0・事実確認)

整形AI(temperature 0.5・箇条書き整形)

3段でAI同士をチェーンすることで、単体LLMの弱点(ハルシネーション・冗長性)を補完できる。


メトリクス

指標
モデルサイズ約 3-4GB(Q4量子化)
動作 VRAM4-5GB(GTX 1660 Ti で余裕)
初回応答時間10〜20秒(モデルロード込み)
以降の応答時間1〜3秒/チャンク
対応機能6種(PDF/議事録/日報/写真×2/分割)
監視フォルダ数4種(並行監視)
月額コスト¥0
データ社外送信0 バイト

学んだこと

1. ローカルLLMは「8割実用」で十分価値がある

GPT-4o や Claude 3.7 のような高精度は出ない。だが、「議事録から TODO を抜く」「PDF を 200字で要約する」 ような定型作業なら、Gemma 2B〜5B クラスでも実用十分。完璧を求めず「8割で」と割り切ったことが成功要因。

2. 重要なのはモデルでなくオーケストレーション

watchdog でフォルダ監視 → Python ルーター → Ollama API → 結果出力。
この「業務フロー側」の設計 が全体価値の8割を決める。LLMの精度差より「いつ・どこから・何を入力されたら・どう動くか」の設計が重要。

3. ライセンスは早期に潰す

Gemma 4 が Apache 2.0 だと判明した時点で「商用利用OK・利用規約同意不要・社内展開可能」が確定。一方で LM Studio は商用ライセンス必須が判明し、序盤で除外できた。最初にライセンス調査をした2時間 が、後の数十時間の手戻りを防いだ。

4. Q4量子化は「劣化」ではなく「実用化」

「精度が落ちる」と敬遠されがちな量子化だが、6GB VRAM で動かせる 唯一の現実解。F16フル精度版は 16GB GPU が必要で、社内ノートPCでは動かない。

「現場で動くこと」 > 「ベンチマーク精度」 を優先すべき場面の典型。

5. クラウドAI依存からの脱却は「再現可能な設計」

このシステムは別PCに引っ越しても、Ollama installmodel pullpython main.py だけで再現できる。ベンダーロックインゼロ・設定ファイルのみで完全移行可能 なのが最大の強み。


拡張ロードマップ

Phase内容
現状6機能・本番稼働中
次フェーズRAGで社内資料を知識として注入(社内マニュアル検索AI化)
Phase 2Modelfile で複数キャラ作成(要約専門・チェック専門・整形専門)
Phase 3マルチエージェント・パイプライン化(要約→チェック→整形を3段チェーン)
Phase 4音声入力対応(Whisper.cpp ローカル実行と組み合わせ)

まとめ

「機密データを外に出せない」 という制約が、むしろローカルAI活用の必然性を生んだ。

ChatGPT 課金前に、まず ローカルLLM で「探す・まとめる・書く」を自動化する 選択肢を検討してほしい。多くの定型業務は Gemma クラスで十分まかなえる。

「クラウドAIか、AI諦めるか」の二者択一ではなく、「機密はローカル、汎用はクラウド」 のハイブリッド運用が、これからの実用解になる。

▸ このプロジェクトで使ったリソース
🤖 使ったAIツール
AIツール一覧を見る →
📚 関連学習
製造DX学習ロードマップ(16週)→ 関連ブログ記事を探す →
📖 関連用語
ローカルLLMOllamaGemmaPythonwatchdog業務自動化
同様の課題をお持ちの方へ

この事例と同様の課題についてご相談いただけます。
現場の状況に合わせた改善アプローチをご提案します。

お問い合わせ →

関連事例

ダッシュボード統合管理システム
データ可視化
設計変更通知の自動化
プロセス自動化
← 事例一覧へ戻る