68 lines
3.5 KiB
Markdown
68 lines
3.5 KiB
Markdown
# oproxy.py - The Strategic AI Proxy for Local LLMs
|
||
|
||
`oproxy.py` は、RTX 3060 (12GB) などのローカル環境で **Cline** や **Zed** といった AI Agent を極限まで効率よく運用するために設計された、高機能・対話型リバースプロキシです。
|
||
|
||
## 🛠 主要機能 (Features)
|
||
|
||
### 1. ⚡ 魂のカラー・パルス (Visual Pulse)
|
||
|
||
AIとの通信状況をコンソール上にリアルタイムで可視化します。
|
||
|
||
* **`^^^^` (Cyan)**: リクエスト送信中(サイズに応じて脈動)。
|
||
* **`|` (Yellow)**: ターゲットへの到達。
|
||
* **`vvvv` (Green)**: レスポンス(ストリーミング)受信中。
|
||
* **`*` (Yellow)**: 通信の正常完了。
|
||
|
||
### 2. 🧠 戦略的モデル分析 (Strategic Analysis: `l` / `ll`)
|
||
|
||
単なるモデル一覧ではありません。12GB VRAM という「戦場」を生き抜くための分析を行います。
|
||
|
||
* **カラー判定**:
|
||
* **GREEN**: VRAMに余裕を持って収まる安全圏。
|
||
* **YELLOW**: 12GBの限界に近い。他のアプリを閉じないと溢れる可能性あり。
|
||
* **RED**: 12GBを超過。システムRAM(CPU推論)に溢れ、速度が極端に低下する警告。
|
||
|
||
|
||
* **詳細表示 (`ll`)**: パラメータサイズ、量子化ビット数(Q4, Q3等)を瞬時に把握。
|
||
|
||
### 3. 📉 VRAM リアルタイム監視 (VRAM Status: `s`)
|
||
|
||
Ollama の内部 API (`/api/ps`) を叩き、現在 VRAM にどのモデルがロードされ、何 GB 専有しているかを色付きで表示します。
|
||
|
||
### 4. 🔍 インテリジェント・データダンプ (Smart Dump: `d` / `dd`)
|
||
|
||
AI Agent (Cline 等) が「なぜか思い通りに動かない」時の強力なデバッグツールです。
|
||
|
||
* **`d`**: **次の1リクエストだけ**、その中身(JSON)を美しく整形してぶちまけます。
|
||
* **`dd`**: ダンプ予約のキャンセル。
|
||
* **自動オフ**: 1回ダンプすると自動的にOFFに戻るため、ログが汚れるのを防ぎます。
|
||
|
||
### 5. 🏗 動的ターゲット・スイッチ (Dynamic Switching)
|
||
|
||
プロキシを再起動することなく、ポート番号(例: `11432`, `11435`)を直接打ち込むだけで、背後の Ollama インスタンスを瞬時に切り替えます。
|
||
|
||
---
|
||
|
||
## ⌨️ コマンドリファレンス (Commands)
|
||
|
||
| コマンド | 機能 |
|
||
| --- | --- |
|
||
| **`l`** | モデルリストを表示(サイズに応じた色分け分析付き) |
|
||
| **`ll`** | 量子化ビット数を含む、詳細なモデル分析を表示 |
|
||
| **`s`** | 現在の VRAM 使用状況(どのモデルが専有中か)を表示 |
|
||
| **`d`** | **[DUMP ON]** 次のリクエスト・レスポンスを完全表示 |
|
||
| **`dd`** | **[DUMP OFF]** ダンプ予約の解除 |
|
||
| **`数字`** | ターゲットとする Ollama のポート番号を即時変更 |
|
||
| **`q`** | プロキシの安全な終了 |
|
||
|
||
---
|
||
|
||
## 🚀 導入のメリット
|
||
|
||
1. **Agent対応の判断**: `d` でダンプを見れば、モデルが正しく「ツール呼び出し(JSON)」を行っているか一目瞭然です。
|
||
2. **30bモデルの運用**: RTX 3060 で 30b クラスを動かす際、`s` と `l` の分析により「あ、これはQ3量子化じゃないと無理だ」といった戦略的な判断が可能になります。
|
||
3. **長考への耐性**: 600秒のタイムアウト設定により、巨大モデルの深い思考(Reasoning)を途中で遮断しません。
|
||
|
||
## インストール
|
||
sudo apt install -y python3-pip
|
||
pip install httpx uvicorn fastapi --break-system-packages
|