ローカルRAGツールをNemotron Nano 9B v2とvLLMツールコールで構築

技術実装の詳細
開発者が、単一のGPU上で完全に動作するローカルファーストのRAG研究ツールの構築手法を共有しました。バックエンド全体は単一のapp.pyファイルに収められています。
スタックと構成
このツールは、RTX 5090 GPU上で動作するvLLM上でFP16量子化されたNemotron Nano 9B v2 Japaneseを使用しています。バックエンドはFastAPI + SQLite FTS5 + Jinja2を組み合わせています。ツール呼び出しには、NVIDIAの公式パーサープラグイン、具体的には--tool-call-parser nemotron_jsonと--tool-parser-pluginを使用しており、Nemotron v2は組み込みのvLLMパーサー(v3用)ではなく、カスタムパーサープラグインを必要とすることに注意しています。
主要な設計判断
このシステムは、抽出→実行の2段階フローを実装しています:
- 質問が投げられると、システムはまずLLMを介して二言語キーワード(英語と日本語)を抽出します
- ローカルソースに対するFTS5検索とDuckDuckGoウェブ検索を並列で実行します
- ユーザーが選択できるチェックボックス付きで結果を表示します
- ユーザーが選択した後にのみ、最終的な応答を生成します
このアプローチにより、10万トークン以上のコンテキストを一気に投入し、モデルが理解することを期待することを避けています。
パフォーマンスと機能
- ツール呼び出し: モデルは自律的にウェブ検索を行うタイミングを決定し、温度0.1で驚くほど良好に動作します
- プレフィックスキャッシュのウォームアップ: ソース読み込み時にすべてをキャッシュする代わりに、KVキャッシュはユーザーがソースプレビューを見たときにウォームアップされます。ユーザーが実行をクリックする時点では、vLLMの
--enable-prefix-cachingを使用してプレフィックスは既にキャッシュされています - 二言語FTS5検索: ユーザークエリ → Nemotronが英語と日本語の両方でキーワードを抽出 → OR結合されたFTS5 MATCHクエリ。多言語の特許/研究データに効果的です
パフォーマンス数値
- 出力速度:約80-120 tok/s
- 最大トークン数:8192
- ソース抽出:約3-5秒(キーワード抽出 + FTS5 + DDG並列検索)
- 5つのソースと3つのウェブ結果を含む完全な応答:RTX 5090上での詳細な回答に約50秒
セットアップとソース
ソースコードはhttps://github.com/soy-tuber/SoyLMで入手可能です。これはuv pip install -r requirements.txtでインストールできる単一ファイルアプリケーションです。vLLMとNemotronパーサープラグインが別途必要であることに注意してください。
📖 完全なソースを読む: r/LocalLLaMA
👀 See Also

ブラウザハーネス: LLMに生のCDPアクセスを提供し、ブラウザタスクを自己修正させる
Browser Harnessはブラウザフレームワークを取り除き、LLMにCDP Websocketへの直接アクセスを提供し、タスクの途中で不足しているツールを自ら作成できるようにします。アップロードファイル機能を自己発明する例が示されています。

MCPスリム:MCPツールのローカル埋め込み検索でコンテキスト肥大化を軽減
MCP Slimは、完全なMCPツールカタログを3つのメタツール(検索、説明、呼び出し)に置き換えるプロキシで、ローカルのMiniLM埋め込みを利用した意味検索を行います。これにより、コンテキストウィンドウを96%削減し、APIキーなしでオフライン動作を実現します。

OpenClaw PARAスキルは、AIアシスタントのファイルを自動的に整理します。
ある開発者が、ファイル整理にPARAメソッド(プロジェクト、エリア、リソース、アーカイブ)を強制するOpenClawスキルを作成しました。これにより、すべてのファイルをルートディレクトリにダンプする代わりに、4つの構造化されたフォルダに自動的に分類します。

Claude Code HUD: AIコーディングセッション監視用ターミナルダッシュボード
claude-code-hudは、Claude Codeセッションのリアルタイム監視を提供するターミナルダッシュボードで、IDEを必要とせずにコンテキストウィンドウの使用状況、APIレート制限、ファイル変更を表示します。npx claude-code-hudで実行できます。