0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

API代ゼロ、漏洩リスクゼロ、オンボーディング1時間 ── 「どこから読めばいい?」を完全ローカルAI+RAGで葬った話【2,247ファイル実証】

0
Posted at

前回記事からの進化点を含む、最新版 LocalForge の完全ガイドです。
RAG対応・tree-sitterシンボル抽出・依存関係グラフ・差分編集など、機能が大きく強化されました。


「どこから手を付ければいい?」という苦しみ

新しいプロジェクトにアサインされたとき、こんな経験はないでしょうか。

リポジトリをクローンして ls を叩いたら、ディレクトリが20個。
ファイル数を確認したら2,000超。
ドキュメントは半分が古く、半分が英語。

どこから読めばいいかわからず、丸一日かけてようやく「このファイルが入口っぽい」と気づく——
そういったコードオンボーディングの非効率さは、経験年数に関係なく誰もが感じる課題です。

この記事では、そんな状況を打破した 完全ローカル動作のAIコード解析ツール「LocalForge」 の最新版を紹介します。前回公開した初期バージョンからアーキテクチャを大幅に刷新し、速度・精度・使い勝手がすべて向上しました。


LocalForgeとは

LocalForgeは、Ollamaをバックエンドに使った完全ローカルのAI駆動コード解析IDEです。

クラウドAPIを一切使わないため:

  • APIコストがゼロ
  • コードが外部に送信されない(社内コード・業務ロジックも安心)
  • オフライン環境でも動作する

主な機能は3つのモードに集約されています。

モード 何ができるか
Generate AIがプロジェクト構成を提案し、ファイルをゼロから生成。SEARCH/REPLACE差分編集にも対応
Resume 既存プロジェクト(外部製も可)の続行・拡張・Q&A継続
Explain コードベースを丸ごと解析し、11セクションのレポートを生成。RAG対応Q&Aも可能

今回フォーカスするのはExplainモードです。


前回バージョンからの主な強化点

前回の記事で紹介した版から、以下の点が大きく進化しました。

1. LLMを使わないインデックス構築(速度革命:v:

旧版ではファイルサマリー生成にLLMを多用していました。新版では3ティア分類を導入し、LLM呼び出しをほぼゼロに削減。

Tier-0: パスとサイズだけで判定(ファイルを開かない)
  └── .lock, .json, .svg, テストファイル... → 即時確定

Tier-1: 内容を読んでヒューリスティック判定
  └── ミニファイ済み、自動生成、20行以下のファイル... → LLM不要

Tier-2: tree-sitterによるシンボル抽出
  └── 実際のソースコード → クラス・関数・インポートを構造解析
      Python/JS/TS/SQL/Go/Rust/Java... に対応

2,000ファイルでも LLMが実際に介在するのはQ&Aとレポート生成のみ という設計になっています。

2. RAG(検索拡張生成)の本格導入

sentence-transformers/all-MiniLM-L6-v2(プロセス内実行、Ollamaへのリクエスト不要)でファイルサマリーをChromaDBにベクトル化。

Q&Aでは「質問に意味的に近いファイル」を自動選別してLLMに渡すため、2,000ファイルあっても的外れな回答になりにくくなりました。RAGが使えない環境ではBM25キーワード検索に自動フォールバックします。

3. 依存関係グラフの自動解決

Python の import 文・JS/TS の import/require 文を静的解析し、ファイル間の依存関係を自動構築。Q&Aでは「このファイルが何をインポートしているか」「どこからインポートされているか」がLLMのコンテキストに含まれるようになり、回答の精度が向上しました。

4. SEARCH/REPLACE差分編集

Generateモードでは、既存ファイルの差分だけを生成・適用する方式に刷新。ファイル全体を書き直す旧方式と比べ、トークン消費が大幅に削減されました。適用失敗時は自動リトライ&バックアップからのロールバックも行います。

5. マルチプロジェクト・ワークスペース

複数のプロジェクトを横断して参照できるワークスペース機能を追加。「このプロジェクトが依存している別リポジトリ」もQ&Aのコンテキストに含められます。

6. ドキュメントファイル対応

.pdf / .docx / .xlsx / .pptx などのオフィス文書もインデックス対象になりました。仕様書・設計書が混在するプロジェクトでも、コードと一緒に解析できます。


実際にやってみた:2,247ファイルの解析

以下の構成のプロジェクトをCPUのみ(RAM 32GB)、モデルqwen3-coder:30bで解析しました。

総ファイル数: 2,247ファイル(すべてインデックス済み)

言語構成:
  Python:      597ファイル
  TypeScript:  591ファイル
  SQL:         212ファイル
  XLSX:         79ファイル
  DOCX:         50ファイル
  PDF:          26ファイル
  Markdown:    293ファイル
  YAML:         24ファイル
  JSON:         23ファイル
  Bash:         17ファイル  他

インデックス構築:約20秒 👈ここが大きく減りました。
レポート生成:15分程度 👈qwen3-coder:30bは18GBの為32GB-RAMも対応できる(コスパは良い)
その後のQ&A:数十分かかります 👈コンテキストが大きいためLLM処理に時間がかかりますがよい回答を得られた。

1時間後には、プロジェクト全体の構造・データフロー・依存関係・潜在的な技術的負債まで把握できていました。


生成されるレポートの構成

Explainモードで生成されるレポートは11セクション固定です。

# セクション名 内容
1 Project Overview プロジェクトの概要・目的・規模
2 Module Map モジュール構成の全体図
3 Entry Points & Startup Flow 起動ファイルと実行フロー
4 Data Flow データの流れと変換ロジック
5 Key Interfaces & Contracts 主要なAPI・インターフェース定義
6 External Dependencies 外部ライブラリ・サービスへの依存
7 Configuration 設定ファイルと環境変数
8 Test Coverage テストの範囲と品質
9 Notable Patterns & Design Decisions 設計パターン・アーキテクチャの判断
10 Potential Issues & Technical Debt 潜在的な問題点と技術的負債
11 How to Extend This Project 拡張方法・開発ガイド

初日に知りたい情報がすべてここに揃います。


セットアップは5分で完了

# 1. Ollamaをインストール
#    https://ollama.com からOS向けパッケージをダウンロード
ollama pull qwen3-coder:30b          # お好みのモデルを取得
ollama pull nomic-embed-text:latest  # RAG用埋め込みモデル(任意)

# 2. LocalForgeをクローン&インストール
git clone https://github.com/Rikiza89/localforge_web
cd localforge_web
python -m venv venv
source venv/bin/activate   # Windows: venv\Scripts\activate
pip install -r requirements.txt

# 3. 起動
python main.py

pywebviewが使える環境ではネイティブウィンドウが開きます。
Docker・ヘッドレス環境ではブラウザで http://localhost:7331 を開くだけです。
LAN上の別デバイス(タブレット・スマートフォン)からもアクセスできます。


実際の使い方:Explainモード ステップバイステップ

Step 1:フォルダを開く

ヘッダーの「📁 フォルダを開く」で解析したいプロジェクトフォルダを選択します。
コードが入ったフォルダを選ぶとExplainモードが自動検出されます。

Step 2:インデックスを構築する(初期は自動で開始する)

「⚙ インデックス構築」ボタンを押すと処理が始まります。

処理の流れ:
  ① Tier-0/1でロック・設定・テストファイルを高速処理
  ② Tier-2でソースコードをtree-sitterでシンボル抽出
  ③ 依存関係を静的解析(import文を解決)
  ④ ChromaDBにベクトル埋め込み(RAG有効時)

ステータスバーに インデックス構築中: src/main.py (1024/2247) のように進捗が表示されます。
2回目以降は変更ファイルのみ再処理されるため、数秒で完了します。

Step 3:レポートを生成する

「✦ レポート生成」ボタンを押すと、11セクションのレポートがストリーミングで生成されます。
右側の「Ollamaライブ出力」パネルで中間出力をリアルタイムに確認できます。

Step 4:Q&Aで深掘りする

レポート完成後、チャット欄から自由に質問できます。

質問例:
「認証フローはどのファイルで実装されていますか?」
「データベースのスキーマ設計を説明してください」
「このプロジェクトに新しいAPIエンドポイントを追加するには?」
「技術的負債の中で最優先で対処すべき箇所はどこですか?」

RAGが有効なら、ベクトル検索 → 依存関係展開(BFS 5ホップ)→ コンテキスト組み立て → LLM生成という流れで、関連するファイルだけが自動的に選ばれます


ピン留め機能:特定のモジュールを集中解析

ファイルツリー上部の「📎」ボタンでピン留めモードに入ります。
チェックボックスでファイルやフォルダを選択すると、以後のQ&Aではそのファイルがコンテキストに必ず含まれます

「このモジュールだけを深く聞きたい」「設計書と対応するコードを一緒に解析したい」という場面で重宝します。


CPU環境でのパフォーマンスTips

qwen3-coder:30bのような大型モデルをCPUで動かす際のコツをまとめます。

① CPUスレッド数の調整
右サイドバーの「CPU スレッド」スライダーで使用スレッド数を調整できます。
他の作業と並行する場合は半分程度に絞ると安定します。

② RAG埋め込みの無効化(超高速モード)
config.json"enable_rag": false を設定するとベクトル埋め込みをスキップし、インデックス構築が大幅に速くなります。Q&AはBM25検索で動作します。

③ モデルのアンロード
ヘッダーの「⏏ 解放」ボタンで現在のモデルをRAMから解放できます。
別モデルに切り替えるときや、メモリを空けたいときに使います。

④ バックグラウンドプリロード
Q&Aボタンを押した瞬間から、コンテキスト組み立てと並行してモデルのRAMロードが始まります。初回応答までの待機時間が体感で大きく改善されています。


対応モデルについて

Ollamaで動く任意のモデルを使用できます。

モデル 特徴 CPU 32GB での動作
qwen3-coder:30b コード理解に特化、高精度 ◎ 実績あり
gemma4:e4b 軽量・汎用 ◎ 快適
gemma4:26b 思考プロセス可視化対応 △ 重め
qwen3.6:27b 思考プロセス可視化対応 △ 重め
qwen2.5-coder:7b コード理解に特化、軽量 ◎ 早い

Gemmaのような「シンキングモデル」は、<think> タグ内の推論トークンをOllamaライブパネルに分離表示する機能も備えています。


まとめ

課題 LocalForgeでの解決
大規模コードの全体像がわからない 11セクションのAIレポートを自動生成
どのファイルがエントリポイントか不明 Entry Points & Startup Flowセクション
ファイル間の依存関係が複雑 静的解析による依存関係グラフを自動構築
APIコストが気になる 完全ローカル動作でコストゼロ
社内コードを外部に送りたくない Ollamaのみ使用、データは外部に出ない
毎回フルスキャンが遅い 増分インデックスで差分のみ再処理
PDFや仕様書も一緒に解析したい .pdf/.docx/.xlsx/.pptxに対応済み

「コードを読む前に、まずAIに概要を教えてもらう」というオンボーディングのスタイルは、初心者だけでなく、久しぶりに触るプロジェクトに戻るベテランにも有効です。

完全ローカルで動くからこそ、業務コードでも遠慮なく使えます。ぜひ試してみてください。


参考リンク

  • 埋め込みモデル: nomic-embed-text:latest, sentence-transformers/all-MiniLM-L6-v2
  • 使用モデル例: qwen3-coder:30b, gemma4:26b, gemma4:e4b, qwen2.5-coder:7b
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?