All checks were successful
Deploy Docusaurus Site / deploy (push) Successful in 26s
96 lines
2.7 KiB
Bash
96 lines
2.7 KiB
Bash
#!/bin/bash
|
||
# DGX Spark Claude Code ローカル実行スクリプト
|
||
# Usage: curl -sL https://docs.techswan.online/scripts/dgx-spark-claude-code.sh | bash
|
||
|
||
set -e
|
||
|
||
echo "🚀 DGX Spark Claude Code セットアップ"
|
||
echo ""
|
||
|
||
# Step 1: vLLM起動
|
||
echo "📦 Step 1: vLLM + Qwen3-Coder-Next-FP8 起動..."
|
||
docker stop qwen3-coder-next-fp8 2>/dev/null || true
|
||
docker rm qwen3-coder-next-fp8 2>/dev/null || true
|
||
|
||
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
|
||
|
||
echo " コンテナ起動完了(モデルロードに約10分かかります)"
|
||
echo ""
|
||
|
||
# Step 2: claude-code-proxy セットアップ
|
||
echo "🔧 Step 2: claude-code-proxy セットアップ..."
|
||
PROXY_DIR="$HOME/.claude-code-proxy"
|
||
|
||
if [ ! -d "$PROXY_DIR" ]; then
|
||
git clone https://github.com/fuergaosi233/claude-code-proxy.git "$PROXY_DIR"
|
||
fi
|
||
|
||
cd "$PROXY_DIR"
|
||
pip install -r requirements.txt --user --quiet 2>/dev/null || pip install -r requirements.txt --user --break-system-packages --quiet
|
||
|
||
cat > .env << 'EOF'
|
||
OPENAI_BASE_URL=http://localhost:8000/v1
|
||
OPENAI_API_KEY=dummy
|
||
BIG_MODEL=qwen3-coder-next
|
||
MIDDLE_MODEL=qwen3-coder-next
|
||
SMALL_MODEL=qwen3-coder-next
|
||
REQUEST_TIMEOUT=300
|
||
MAX_TOKENS_LIMIT=8192
|
||
EOF
|
||
|
||
echo " プロキシ設定完了"
|
||
echo ""
|
||
|
||
# Step 3: プロキシ起動
|
||
echo "🌐 Step 3: プロキシ起動..."
|
||
pkill -f start_proxy.py 2>/dev/null || true
|
||
nohup python3 start_proxy.py > /tmp/proxy.log 2>&1 &
|
||
sleep 3
|
||
|
||
if curl -s http://localhost:8082/health > /dev/null 2>&1; then
|
||
echo " プロキシ起動完了 (port 8082)"
|
||
else
|
||
echo " ⚠️ プロキシ起動中... (数秒待ってください)"
|
||
fi
|
||
echo ""
|
||
|
||
# Step 4: vLLMヘルスチェック待ち
|
||
echo "⏳ Step 4: vLLM起動待ち..."
|
||
echo " (モデルロード中... 約10分かかります)"
|
||
echo ""
|
||
|
||
while ! curl -s http://localhost:8000/health > /dev/null 2>&1; do
|
||
sleep 10
|
||
echo -n "."
|
||
done
|
||
echo ""
|
||
echo " ✅ vLLM起動完了!"
|
||
echo ""
|
||
|
||
# 完了メッセージ
|
||
echo "=========================================="
|
||
echo "🎉 セットアップ完了!"
|
||
echo ""
|
||
echo "Claude Codeを起動するには:"
|
||
echo ""
|
||
echo " ANTHROPIC_BASE_URL=http://localhost:8082 ANTHROPIC_API_KEY=dummy claude"
|
||
echo ""
|
||
echo "または ~/.bashrc に追加:"
|
||
echo ""
|
||
echo " alias claude-local='ANTHROPIC_BASE_URL=http://localhost:8082 ANTHROPIC_API_KEY=dummy claude'"
|
||
echo ""
|
||
echo "=========================================="
|