diff --git a/docs-tech/dgx-spark-claude-code-local/index.md b/docs-tech/dgx-spark-claude-code-local/index.md index 66adcc1..187110c 100644 --- a/docs-tech/dgx-spark-claude-code-local/index.md +++ b/docs-tech/dgx-spark-claude-code-local/index.md @@ -71,7 +71,7 @@ NVIDIAの「デスクトップAIワークステーション」です。 ## 構成図 -\`\`\` +```text ┌─────────────────────────────────────────────────────┐ │ あなたのPC / DGX Spark │ │ │ @@ -97,7 +97,7 @@ NVIDIAの「デスクトップAIワークステーション」です。 │ │ └──────────────┘ │ │ │ └──────────────────┘ │ └─────────────────────────────────────────────────────┘ -\`\`\` +``` ### なぜプロキシが必要? @@ -123,9 +123,9 @@ FP8量子化版を使うことで、メモリ使用量は約45GB。DGX Sparkの1 ## ワンライナーで全自動セットアップ -\`\`\`bash +```bash curl -sL https://docs.techswan.online/scripts/dgx-spark-claude-code.sh | bash -\`\`\` +``` これだけ!約10分待つと環境が整います。 @@ -137,49 +137,51 @@ curl -sL https://docs.techswan.online/scripts/dgx-spark-claude-code.sh | bash ### Step 1: vLLMでモデルを起動 -\`\`\`bash title="vLLM起動コマンド" -docker run -d --name qwen3-coder-next-fp8 \\ - --gpus all \\ - -p 8000:8000 \\ - -v ~/.cache/huggingface:/root/.cache/huggingface \\ - --ipc=host \\ - nvcr.io/nvidia/vllm:25.11-py3 \\ - vllm serve Qwen/Qwen3-Coder-Next-FP8 \\ - --served-model-name qwen3-coder-next \\ - --max-model-len 200000 \\ - --max-num-seqs 8 \\ - --gpu-memory-utilization 0.85 \\ - --enable-auto-tool-choice \\ - --tool-call-parser qwen3_xml \\ +```bash title="vLLM起動コマンド" +docker run -d --name qwen3-coder-next-fp8 \ + --gpus all \ + -p 8000:8000 \ + -v ~/.cache/huggingface:/root/.cache/huggingface \ + --ipc=host \ + nvcr.io/nvidia/vllm:25.11-py3 \ + vllm serve Qwen/Qwen3-Coder-Next-FP8 \ + --served-model-name qwen3-coder-next \ + --max-model-len 200000 \ + --max-num-seqs 8 \ + --gpu-memory-utilization 0.85 \ + --enable-auto-tool-choice \ + --tool-call-parser qwen3_xml \ --trust-remote-code -\`\`\` +``` #### 重要なポイント | オプション | 値 | 説明 | |-----------|-----|------| -| \`--max-model-len\` | 200000 | 200Kトークンまで対応 | -| \`--max-num-seqs\` | 8 | 同時リクエスト数(メモリ節約) | -| \`--tool-call-parser\` | **qwen3_xml** | ⚠️ これ超重要! | +| `--max-model-len` | 200000 | 200Kトークンまで対応 | +| `--max-num-seqs` | 8 | 同時リクエスト数(メモリ節約) | +| `--tool-call-parser` | **qwen3_xml** | ⚠️ これ超重要! | :::danger tool-call-parserに注意 -\`--tool-call-parser\` を間違えると、Claude Codeのファイル操作やコマンド実行が動きません。**必ず \`qwen3_xml\`** を指定してください。 +`--tool-call-parser` を間違えると、Claude Codeのファイル操作やコマンド実行が動きません。**必ず `qwen3_xml`** を指定してください。 ::: 初回起動は約10分かかります(45GBのモデルをダウンロード&ロード)。 ### Step 2: claude-code-proxyを起動 -\`\`\`bash +```bash # クローン git clone https://github.com/fuergaosi233/claude-code-proxy.git cd claude-code-proxy # 依存関係インストール pip install -r requirements.txt --user +``` -# 設定ファイル作成 -cat > .env << 'EOF' +`.env` ファイルを作成: + +```ini title=".env" OPENAI_BASE_URL=http://localhost:8000/v1 OPENAI_API_KEY=dummy BIG_MODEL=qwen3-coder-next @@ -187,31 +189,33 @@ MIDDLE_MODEL=qwen3-coder-next SMALL_MODEL=qwen3-coder-next REQUEST_TIMEOUT=300 MAX_TOKENS_LIMIT=8192 -EOF +``` -# 起動 +プロキシを起動: + +```bash python start_proxy.py -\`\`\` +``` ### Step 3: Claude Codeを起動 -\`\`\`bash -ANTHROPIC_BASE_URL=http://localhost:8082 \\ -ANTHROPIC_API_KEY=dummy \\ +```bash +ANTHROPIC_BASE_URL=http://localhost:8082 \ +ANTHROPIC_API_KEY=dummy \ claude -\`\`\` +``` :::warning ANTHROPIC_AUTH_TOKEN -\`ANTHROPIC_AUTH_TOKEN\` は設定しないでください。両方設定するとエラーになります。 +`ANTHROPIC_AUTH_TOKEN` は設定しないでください。両方設定するとエラーになります。 ::: ### 便利なエイリアス設定 -\`\`\`bash title="~/.bashrc に追加" +```bash title="~/.bashrc に追加" alias claude-local='ANTHROPIC_BASE_URL=http://localhost:8082 ANTHROPIC_API_KEY=dummy claude' -\`\`\` +``` -これで \`claude-local\` と打つだけでOK! +これで `claude-local` と打つだけでOK! ## パフォーマンス @@ -230,25 +234,25 @@ Anthropic APIに比べると生成速度は遅めですが、ローカルで完 最初、ファイル操作しようとすると固まりました。 -**原因**: \`--tool-call-parser hermes\` を使っていた +**原因**: `--tool-call-parser hermes` を使っていた -**解決**: \`--tool-call-parser qwen3_xml\` に変更 +**解決**: `--tool-call-parser qwen3_xml` に変更 Qwen3系モデルは独自のTool Callingフォーマットを使うので、専用のパーサーが必要です。 ### 2. Auth conflictエラー -\`\`\` +```text Auth conflict: Both a token (ANTHROPIC_AUTH_TOKEN) and an API key (ANTHROPIC_API_KEY) are set. -\`\`\` +``` -**解決**: \`ANTHROPIC_AUTH_TOKEN\` を設定しない(または \`unset ANTHROPIC_AUTH_TOKEN\`) +**解決**: `ANTHROPIC_AUTH_TOKEN` を設定しない(または `unset ANTHROPIC_AUTH_TOKEN`) ### 3. max_tokensエラー 入力が長すぎると、出力用のトークン枠がなくなってエラーに。 -**解決**: vLLMの \`--max-model-len\` を増やす(今回は200Kに設定) +**解決**: vLLMの `--max-model-len` を増やす(今回は200Kに設定) ## まとめ @@ -258,8 +262,8 @@ DGX SparkでClaude Codeをローカル化できました! 1. **vLLM + Qwen3-Coder-Next-FP8** でモデルを動かす 2. **claude-code-proxy** でAPI形式を変換 -3. \`--tool-call-parser qwen3_xml\` を忘れずに! -4. \`ANTHROPIC_AUTH_TOKEN\` は設定しない +3. `--tool-call-parser qwen3_xml` を忘れずに! +4. `ANTHROPIC_AUTH_TOKEN` は設定しない セットアップは複雑ですが、一度動けば**速くて安定**。完全ローカルでClaude Codeが動く喜び、ぜひ体験してみてください。