ローカルLLMリモートアクセス設計¶
📁 docs/dev-environment/artifact/wip/20260427_local-llm-remote-access-design.md
背景・やりたいこと¶
- WindowsPC(192.168.11.44 / Tailscale: 100.87.120.65)でOllamaが稼働中
- MacのClaude Code(CLI) から、このWindowsのローカルモデルを使いたい
- さらに、クラウド(Anthropicサブスク)とローカルをパラメータ1つで切り替えできるようにしたい
現状¶
| コンポーネント | 状態 |
|---|---|
| Ollama(Windows) | 稼働中。0.0.0.0:11434 でListen済み |
モデル claude47-opus-local | インストール・登録済み |
| Open WebUI | http://100.87.120.65:3000 でブラウザアクセス可能 |
| Tailscale VPN | WindowsとMacで接続済み(想定) |
解決すべき課題¶
Claude Codeは接続先を ANTHROPIC_BASE_URL 環境変数で切り替えられる。 ただし、Ollamaに直接つなぐと Anthropicのベータヘッダー(anthropic-beta 等)に非対応なため、 Claude Code特有の機能(Tool Use, Extended Thinking等)が動作しない可能性がある。
→ 中間にLiteLLMプロキシを挟むことで、ヘッダー変換・ルーティングを担保する。
案A: LiteLLMプロキシ経由(推奨)¶
[MacのClaude Code]
↓ ANTHROPIC_BASE_URL=http://100.87.120.65:8000
[LiteLLM Proxy(Windows, port:8000)]
├─ model="claude47-opus-local" → Ollama(localhost:11434)
└─ model="claude-*" → Anthropic API(クラウド)※オプション
切り替え方法(Mac側)¶
# ~/.zshrc に追記
# ローカルモード(WindowsのOllamaを使う)
alias cc-local='ANTHROPIC_BASE_URL=http://100.87.120.65:8000 claude --model claude47-opus-local'
# クラウドモード(通常のサブスク認証・変更なし)
alias cc='claude'
メリット¶
- Mac側はエイリアス1つで切り替え完結
- サーバー側(Windows)でモデル追加・変更が可能
- LiteLLMがヘッダー変換を担うため、Claude Codeの機能が動作しやすい
- 将来的に複数Macや他デバイスからも同じエンドポイントを使える
デメリット¶
- WindowsにLiteLLMのセットアップが必要(Dockerで立てれば簡単)
- LiteLLMとAnthropicのAPI互換性が100%ではない場合がある
案B: Ollama直接接続(シンプル)¶
[MacのClaude Code]
↓ ANTHROPIC_BASE_URL=http://100.87.120.65:11434/v1
[Ollama(Windows)]
└─ claude47-opus-local
切り替え方法¶
# ローカルモード
alias cc-local='ANTHROPIC_BASE_URL=http://100.87.120.65:11434/v1 ANTHROPIC_API_KEY=ollama claude --model claude47-opus-local'
# クラウドモード
alias cc='claude'
メリット¶
- LiteLLMが不要でシンプル
- 即使える(追加セットアップなし)
デメリット¶
- Anthropicベータヘッダー非対応のためClaude Code機能が一部動作しない可能性
- サーバー側でルーティング制御できない
比較表¶
| 観点 | 案A(LiteLLM) | 案B(Ollama直接) |
|---|---|---|
| セットアップ手間 | 中(LiteLLMのDocker設定) | 低(即使える) |
| Claude Code互換性 | 高 | 低〜中 |
| 切り替えの簡単さ | エイリアス1つ | エイリアス1つ |
| 複数デバイス対応 | しやすい | しやすい |
| 将来の拡張性 | 高(モデル追加・LB等) | 低 |
決めてほしいこと(TODO)¶
- 案Aか案Bか を決定する
- クラウドモードの認証方式を確認する
- サブスク認証(
claude auth loginで認証済み)か - APIキー認証(
ANTHROPIC_API_KEY=sk-ant-...)か - MacにClaude Codeはインストール済みか(未インストールならセットアップも必要)
- 切り替えのUIをどこにするか
- シェルエイリアス(
.zshrc) - プロジェクト単位の
.claude/settings.local.json - どちらでも(両方対応)
次のアクション(案A採用の場合)¶
- WindowsでLiteLLMをDockerで起動(
projects/litellm/docker-compose.yml) - MacのClaude Codeに接続設定(
~/.zshrcor.claude/settings.local.json) - 動作確認(
cc-localでOllamaモデルに接続できるか)