アプリ概要
LocalLens の機能
ローカルフォルダから brain を作成し、その内容に対して根拠付きの質問をする。
フォルダを 1 つ選んでください。LocalLens はそれを brain に変えます。 ここで言う brain とは、チャットできるインデックスのことです。質問すれば 回答が返ってきて、モデルがどのファイルのどのチャンクに依拠したのかが そのまま確認できます。
操作方法は 2 通りあります。
- CLI: フォルダを指定して 1 つだけ質問して終わりたいときに使う。
- ブラウザ UI(
Bun.serveで配信): 複数の brain を行き来したり、 チャットスレッドで追加質問を続けたいときに使う。
どちらも同じ LocalLensApp クラスを経由するので、片方で動くものは
追加の配線なしにもう片方でもだいたい動きます。
4 ステップのフロー
- フォルダを選ぶ。 CLI ならパスを渡し、ブラウザ UI なら Choose folder をクリックします。
- インデックスする。 LocalLens がフォルダを走査し、テキスト形式の ファイルだけを残してチャンクに分割、それを embedding として QVAC RAG ワークスペースに書き込みます。
- 質問する。 質問を embedding にしてワークスペースと照合します。 上位のヒットがプロンプト内で番号付きの抜粋になります。
- 回答を読む。 チャットモデルが回答をストリームで返し、抜粋を
[1]、[2]として引用します。UI ではその引用が元ファイルへの リンクとして表示されます。
データの保存先
brain とチャンクは .locallens/store.json に置かれます。embedding は
QVAC 自身のワークスペースディレクトリに残ります。brain を削除すれば
両方とも 1 回の操作で消えます。
コードの所在
| ファイル | 役割 |
|---|---|
src/cli.ts | UI なしのパス。フォルダ 1 つ、質問 1 つ、回答 1 つ、その後クリーンアップ。 |
src/server.ts | ブラウザ UI を支えるオプションの Bun HTTP サーバー。 |
src/ui/ | 静的なブラウザ UI: index.html、app.js、styles.css。 |
examples/sample-brain/ | CLI と UI が試しに食わせるデモフォルダ。 |
より詳しい構成図は、アーキテクチャと コード構造のページで扱います。
実際の見た目
CLI 実行:
$ bun run cli examples/sample-brain "Why does LocalLens use QWEN3_1_7B_INST_Q4?"
LocalLens uses QWEN3_1_7B_INST_Q4 because it offers a strong balance of answer
quality and local resource use [1]. A 600M fallback is wired in for slimmer
machines [2].
Sources:
- locallens.md#0
- qvac-notes.md#1ブラウザ UI では同じ回答が Markdown としてレンダリングされ、[1] と
[2] がそれぞれ元のチャンクへのリンクになります。