なぜローカル AI なのか
検索と推論を自分のマシン上で動かす理由。
ホスト型のチャットサービスは便利です。ただし、文脈がプライベートに なった途端に話は変わります。個人のノート、社外秘のリポジトリ、未公開の 仕様書。これらはまさにパブリックなチャットボットに貼り付けたくない ものであり、LocalLens がターゲットにしているのもそこです。
最適化しているのは次の 4 点です。
1. ファイルがマシンから出ない
QVAC はチャットモデルと埋め込みモデルをローカルに読み込み、プロセス内で 実行します。検出、チャンク化、embedding、検索、プロンプト構築、テキスト 生成、すべての工程が自分のハードウェア上で完結します。アップロードは 一切ありません。
2. 回答が根拠から外れない
src/rag.ts
にあるプロンプトビルダーは、取得したチャンクの中だけから回答するように
モデルに指示します。答えがそこに含まれていなければ、モデルはその旨を
答えます。[1]、[2] のようなブラケット引用は、それぞれの主張がどの
チャンク由来かを示します。
これはスタイルの選択ではありません。根拠付きのプロンプトを使うことで、 専門的なコンテンツを扱うときに汎用アシスタントが起こしがちな「自信たっぷりに 間違える」失敗を防げます。
3. クラウドはオプション
ネットワークを切っても LocalLens は動きます。CLI もブラウザ UI も オフラインで動作します。発生するネットワーク通信は初回のモデル ダウンロードだけで、QVAC がそれをディスクにキャッシュします。
あとでチームメンバーと brain を共有したくなったら、それはできます。 ただし、それはコードでの選択であり、データを裏で勝手に外へ流すような デフォルト動作ではありません。
4. 読める程度に小さい
src/ 配下に TypeScript ファイルが 8 つ。コードベース全体を半日で読み、
新しいフレームワークを覚えることなく拡張できます。プラグイン機構も、
抽象的なリポジトリインターフェースも、DI コンテナもありません。この
規模では、いずれも実際のボトルネックにはならないからです。
ここでは足りなくなる場面
LocalLens は本番運用のドキュメント管理システムではありません。あくまで 意図的に小さく保ったリファレンス実装です。権限管理、マルチユーザー アクセス、本格的なバックアップ/リストアが必要になれば、このアプリは 規模的に手狭になります。それで構いません。明確な出発点を提供すること こそが目的だからです。
参考リンク
- QVAC ドキュメント — 重い処理を引き受けている SDK。
- Bun ドキュメント — LocalLens が乗っているランタイム。