ブラウザを開くだけで、
あなたのGPUがAPIサーバーになる。
WebLLM Edge Relay は、WebGPU(@mlc-ai/web-llm)と Cloudflare Pages で動く
ゼロコスト・プライベートな OpenAI 互換推論基盤。インストールもDockerも課金もない。
VS Code も Obsidian も、Base URL を差し替えるだけ。
$ curl https://your-project.pages.dev/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{"model":"Llama-3.2-1B-Instruct-q4f16_1-MLC", "messages":[{"role":"user","content":"こんにちは"}],"stream":true}' data: {"choices":[{"delta":{"content":"こ"}}]} data: {"choices":[{"delta":{"content":"ん"}}]} data: {"choices":[{"delta":{"content":"にちわ! …"}}]} data: [DONE] ← 生成されたのは、あなただけのPCの中で。
専用ソフト不要。クラウド課金なし。
それでも「本物のローカルLLM」。
Ollama のような環境構築も、OpenAI の従量課金も必要ありません。必要なのは、WebGPU対応ブラウザを開いていることだけです。
コスト完全ゼロ
Cloudflare Pages 無料枠 + あなたのGPU。クラウドGPUインスタンス費用とは無縁です。
完全プライベート
プロンプトも生成も、端末内のWebGPUだけで処理。外部サーバーへ送信されるデータはゼロ。
OpenAI 完全互換
/v1/chat/completions(SSEストリーミング対応)と /v1/models。既存SDKやアプリが無改修で動きます。
公式全モデル管理
Llama / Qwen / Phi / Gemma / Mistral…事前DL・キャッシュ削除・お気に入り・JSON書き出し/読み込みをダッシュボードで統括。
オンデマンド自動DL
未ダウンロードのモデルがAPI経由で要求されても、SSE keep-aliveでタイムアウト回避のため接続を維持しつつ自動DLして推論を完走。
ベースシステムプロンプト
管理画面で一度設定すれば、すべてのリクエストに透過的に合成。アプリ側のsystem指示とも自動で共存マージ。
3ステップで、デスクトップ全体がローカルLLM化。
リクエストを受け取ったダッシュボードが、あなたのGPUで推論し、結果をストリーミングで返しにいきます。
開いて待機
このサイトのダッシュボードを開き、「リレーノード」で待機を開始。あなたのPCが専属のAPIサーバーになります。
Base URL を差替え
VS Code(Continue / Roo Code)、Obsidian、Chatbox などのエンドポイントを https://<project>.pages.dev/v1 に。
使うだけ
通常どおり補完・要約・チャット。初回はモデルが自動ダウンロードされ、以降はキャッシュから即起動。
Ollama でも クラウドLLM でもない、第三の道。
| クラウドLLM (OpenAI等) | ローカルLLM (Ollama等) | WebLLM Edge Relay | |
|---|---|---|---|
| 費用 | 従量課金 | 無料 | 無料 |
| プライバシー | データが外部へ | ローカル完結 | ローカル完結 |
| セットアップ | APIキー発行 | ソフト導入・環境構築 | URLを開くだけ |
| OpenAI互換API | ◯ | △(追加設定) | ◯(SSE / models) |
| 任意の場所から利用 | ◯ | 同一マシン限定 | ◯(エッジ経由) |
最小限のドキュメント。
API仕様・クライアント設定・始め方・モデル管理。読むべきものは全部このページにあります。
📡 POST /v1/chat/completions
{
"model": "Llama-3.2-1B-Instruct-q4f16_1-MLC",
"messages": [{ "role": "user", "content": "..." }],
"stream": true, // SSE also supported
"temperature": 0.7, // top_p / max_tokens / stop
}
# レスポンス: OpenAI と同一形式の chat.completion(.chunk)
# ダウンロード中はコメント行で接続維持(アプリ側は無視):
# : keep-alive: downloading 35%
🗂 GET /v1/models
{
"object": "list",
"data": [
{ "id": "Llama-3.2-1B-Instruct-q4f16_1-MLC",
"object": "model", "owned_by": "webllm-relay",
"ready": true }, // キャッシュ済みなら true
...
]
}
🖥 クライアント設定例
- Continue (VS Code):
"apiBase": "https://<project>.pages.dev/v1","provider": "openai" - Obsidian Text Generator: Custom provider → API Endpoint に上記URL、Model名を指定
- Chatbox: プロバイダ「OpenAI API互換」→ ホストアドレスを設定
- OpenAI SDK (Python):
OpenAI(base_url="https://<project>.pages.dev/v1", api_key="local")— キー欄は何でもOK(認証なし)
⚡ すぐ始める3ステップ
- 1. 開いて待機:このサイトの「ダッシュボードを開く」から起動し、「リレーノード」で待機を開始します。
- 2. URLを差替え:アプリの Base URL をこのサイトの
/v1に向けるだけ。APIキーは不要です。 - 3. 使う:初回はモデルが自動ダウンロードされ、以降はキャッシュから即起動。データはあなたのPCの中で完結します。
📦 モデル管理ダッシュボード
- 公式全モデルの検索・タグ絞り込み(prebuiltAppConfig 網羅)
- 手動事前ダウンロード:進捗%とステータスをリアルタイム表示
- キャッシュ削除:Cache Storage 連動でモデル単位の完全削除
- お気に入りピン留め/カスタムMLCモデル登録(HF URL+バリデーション)
- JSONエクスポート/インポート:設定・お気に入り・カスタムモデル一覧をスキーマ検証付きで移行
🔐 プライバシーと安全性
- プロンプトも生成データも、あなたのPCの中のWebGPUだけで処理。外部に送られる中身はゼロです。
- ダッシュボードの「ベースシステムプロンプト」に書いた指示は、会話の履歴には表示されず、すべてのリクエストに自動で適用されます。
- APIキーは不要。待機中のタブをあなただけが処理するため、他の人が割り込むことはありません。
- 前提条件: WebGPU 対応ブラウザ(Chrome / Edge 最新版)
よくある質問
本当に無料?隠れた課金は?
Cloudflare Pages の無料枠とあなたのGPUのみで動作するため、利用に伴う課金は発生しません。モデル重みのダウンロードは HF CDN からの取得で、これも無料です。
APIキーは必要ですか?
不要です。推論はすべてあなたのPCの中で完結するため、外部に秘密情報の管理を委ねる必要がありません。SDKの api_key フィールドには適当な値を入れて構いません。
ブラウザを閉じたらどうなる?
ローカルチャットはその場で終了します。ダウンロード済みモデルはブラウザキャッシュに残るので、次回は一瞬で起動します。外部アプリからの利用は、リレーノードタブが開いている間のみ有効です。
どんなモデルが使えますか?
@mlc-ai/web-llm が公式対応する全モデル(Llama 3.x、Qwen 2.5/3、Phi、Gemma、Mistral、SmolLM など)に加え、カスタムMLCモデルの登録も可能です。VRAMバッジで端末適合性を確認できます。
重いモデルが動かないのですが?
多くの場合 VRAM 不足です。q4f16_1 .quantization や 1B〜3B クラスのモデルからお試しください。Chrome の GPU 状態(chrome://gpu)で WebGPU が有効か確認してください。