AIによるコード生成が当たり前になった今、エンジニアが次に求めるのは「自分のコードベースをすべて把握した上での提案」です。VS Code拡張の Roo Code(旧Cline) は、プロジェクト全体をスキャンして記憶する「セマンティック検索(RAG)」機能を備えています。
今回は、プライバシーとパフォーマンスを両立させるため、M4 Max Mac Studioのパワーをフル活用し、「すべてをローカル完結させる」 環境構築の全記録をまとめました。
今回の構成とポイント
巷の解説記事はDockerを使うものが多いですが、今回はインフラエンジニアらしく、Macネイティブバイナリとlaunchdを駆使して「軽量・常駐・爆速」を目指します。
脳 (LLM): LM Studio (
qwen2.5-coder:32b)翻訳機 (Embedding): LM Studio (
nomic-embed-text-v2-moe)本棚 (Vector DB): Qdrant (Macバイナリ版)
常駐化: macOS
launchd
1. 意外な落とし穴:VS Codeのプロキシ設定
構築を始める前に、一番ハマりやすいポイントを潰しておきます。VS Codeはシステムのプロキシ設定を拾ってしまい、127.0.0.1 への通信すら外へ投げようとすることがあります。
settings.json に以下を追記し、VS Codeを完全に再起動(Cmd+Q)しておきましょう。
"http.proxySupport": "off"
2. Qdrantの導入と常駐化(Docker不要)
Roo Codeが「コードの記憶」を保存するには、ベクトルデータベースの Qdrant が必須です。Dockerを使わずに導入する手順は以下の通り。
バイナリの設置
# 作業ディレクトリの作成
mkdir ~/qdrant && cd ~/qdrant
# Apple Silicon(aarch64)用バイナリのダウンロード
curl -L https://github.com/qdrant/qdrant/releases/latest/download/qdrant-aarch64-apple-darwin.tar.gz -o qdrant.tar.gz
# 解凍と実行権限の付与
tar -xvf qdrant.tar.gz
chmod +x qdrant
launchdによる自動起動設定
毎回手動で起動するのはスマートではありません。Macの起動時にバックグラウンドで動き、プロセスが落ちても自動復旧するように設定します。
cat << EOF > ~/Library/LaunchAgents/io.qdrant.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>io.qdrant</string>
<key>ProgramArguments</key>
<array>
<string>/Users/$(whoami)/qdrant/qdrant</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>WorkingDirectory</key>
<string>/Users/$(whoami)/qdrant</string>
<key>StandardOutPath</key>
<string>/Users/$(whoami)/qdrant/qdrant.log</string>
<key>StandardErrorPath</key>
<string>/Users/$(whoami)/qdrant/qdrant-error.log</string>
</dict>
</plist>
EOF
# サービスの登録と開始
launchctl load ~/Library/LaunchAgents/io.qdrant.plist
ヘルスチェック
ps aux | grep qdrant
lsof -i :6333 # 6333ポートがLISTENしていればOK
3. LM Studio側の準備
対話用のモデルだけでなく、Embedding用のモデルもロードしておきます。
Local Server 画面で
Start Serverを実行。ポート番号(デフォルト
1234)を確認。重要: 設定パネルの CORS (Cross-Origin Resource Sharing) を ON にします。これがOFFだとVS Codeからのアクセスが拒絶されます。
4. Roo Codeの設定(統合)
VS CodeのRoo Code設定画面(インデックス作成)で以下を入力します。
エンベッダープロバイダー:
OpenAI互換ベースURL:
http://127.0.0.1:1234/v1(末尾の/v1を忘れずに)モデル:
text-embedding-nomic-embed-text-v2-moeモデルディメンション:
768Qdrant URL:
http://127.0.0.1:6333
5. 運用とリソース
M4 Max Mac Studio(36GB RAM)環境において、この構成でのリソース消費は驚くほど低いです。
待機時CPU: ほぼ 0%。
メモリ: Qdrant単体では数百MB程度。
インデックス作成時: ログ(
tail -f ~/qdrant/qdrant.log)が流れる瞬間だけCPUを使いますが、バックグラウンドでの作業を妨げることはありません。
まとめ
1992年からUnixを触り、インフラを見続けてきた人間にとっても、手元のマシンでこれほど高度な検索・推論基盤が完結するのは感慨深いものがあります。
一度デーモン化してしまえば、あとはAIがあなたの過去のコード資産をすべて把握した状態で、最高の相棒として機能してくれます。Dockerを使わずに構築したいMacユーザーの方は、ぜひ試してみてください。
0 件のコメント:
コメントを投稿