oproxy/README.md
2026-02-08 01:47:43 +09:00

80 lines
3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

これまでの試行錯誤と、この「凄そうなツール」に詰め込んだ機能をすべて盛り込んだ `README.md` を作成しました。
このプロキシは、単なる通信の中継器ではなく、**「リモートサーバーの限界を可視化し、Clineを快適に動かすための管制塔」**としての役割を担っています。
---
## README.md
# Ollama Debugging Proxy (oproxy)
リモートサーバー上の Ollama とローカルの Cline を繋ぎ、通信状態やサーバーリソース、モデルの適合性をリアルタイムに可視化するための高機能プロキシツールです。
### 🌟 主な機能
* **戦力分析 (Startup Scan)**: 起動時にリモートの全モデルをスキャンし、以下の2点から「Clineで動くか」を自動判定します。
* **メモリ判定**: サーバーの空きメモリ16.8 GiB基準に収まるか。
* **ツール判定**: Clineの操作に必要な `Tools (Function Calling)` に対応しているか。
* **通信の可視化 (Real-time Logs)**:
* `^`: リクエスト送信Cline → Proxy → Ollama
* `v`: レスポンス受信Ollama → Proxy → Cline
* `|` / `*`: パケットの区切りと完了を視認。
* **タイムスタンプ**: ミリ秒単位のログで、遅延が発生している箇所を特定。
* **エラー翻訳**: Ollamaが返す不親切な JSON エラーを解析し、Clineのチャット画面上に「何が原因で、どう対策すべきか」の Markdown レポートとして流し込みます。
* **物理的表示の安定性**: 絵文字の幅によるズレを排除した「背景色付きバッジ」システムにより、ターミナル上での完璧な整列を実現。
---
### 🚀 使い方
#### 1. 起動
```bash
python oproxy.py -r 11433 -l 11434
```
* `-r`: リモートの Ollama ポートSSHトンネル等のポート
* `-l`: Cline が接続するローカルポート
#### 2. リストの確認
起動時に表示されるリストで **`READY`** と出ているモデルを確認してください。
* `READY` (緑): メモリ・機能ともに合格。
* `TOOL` (黄): メモリは足りるが、ファイル操作等ができない可能性あり。
* `MEM` (赤): メモリ不足でロードに失敗します。
#### 3. Cline の設定
Cline の設定画面で `Base URL``http://127.0.0.1:11434` に設定し、リストで確認した最適なモデル名を入力してください。
---
### 🛠 必要要件
* **Python**: 3.12以上推奨
* **依存ライブラリ**:
* `fastapi`
* `uvicorn`
* `httpx`
---
### 🎨 ログ表示の見方
```text
[HH:MM:SS.ms] READY [TOOL] モデル名 (サイズ) GiB
[HH:MM:SS.ms] /api/chat: ^^^^|v:vvvvvvvvv*
```
* `^` が出たまま止まる場合:アップロード(テザリング等の上り)がボトルネック。
* `|` の後に `v` がなかなか出ない場合:サーバー側の推論待ち、またはメモリのロード中。
* `v` が少しずつ出る場合:ストリーミング中。