Claude Code 接続
Claude Code を DigitalBase ゲートウェイに接続し、自社サーバのローカル LLM でコーディング支援・社内文書 RAG を使う。コードは Anthropic に送らない。
Claude Code ──→ DigitalBase ゲートウェイ ──→ ローカル LLM(vLLM 等)
(お手元のPC) /v1/messages (Anthropic 互換)
直結には /v1/messages に対応したバージョンのゲートウェイが必要。curl -sk -X POST https://<server>/v1/messages が 401(要認証)なら対応バージョン、404 なら旧バージョン(旧バージョンは付録 B の CCR 経由)。
前提
| 必要なもの | 確認 |
|---|---|
| Claude Code | claude --version |
| DigitalBase の API キー | 管理画面で発行(手順1) |
| ゲートウェイの URL | 例: https://<server> |
手順1. API キーを発行
APIアクセスキー で発行する。
- 「リクエスト設定の優先」で「クライアント設定を優先」を選ぶ(ツール編集・コマンド実行に必要)。
- RAG を併用するなら、キーを RAG アシスタントに紐付ける。
sk-... は発行時に表示される。あとから一覧で再表示できるのは発行した本人のみ。
手順2. 接続設定(settings.json)
(A) か (B) を選ぶ。
(A) プロジェクト単位(推奨・チーム共有向き)
対象プロジェクトの .claude/ に 2 ファイルで設定する。
.claude/settings.json には URL のみを書く。チームで共有・コミットできる。
{
"env": {
"ANTHROPIC_BASE_URL": "https://<server>"
}
}
.claude/settings.local.json には API キーを書く。個人用で、コミットしない。
{
"env": {
"ANTHROPIC_AUTH_TOKEN": "sk-xxxxxxxxxxxxxxxxxxxxxxxx"
}
}
このプロジェクトの claude だけが DigitalBase に接続する。
(B) グローバル(この PC を DigitalBase 専用にする)
~/.claude/settings.json に書く。
{
"env": {
"ANTHROPIC_BASE_URL": "https://<server>",
"ANTHROPIC_AUTH_TOKEN": "sk-xxxxxxxxxxxxxxxxxxxxxxxx"
}
}
ANTHROPIC_BASE_URL の末尾に /v1 を付けない(Claude Code が /v1/messages を自動付加)。ANTHROPIC_AUTH_TOKEN は手順1の sk-...。
手順3. 起動して使う
Claude Code を起動する。
claude
画面にモデル名「Sonnet / Opus」等が出ても、通信はすべて DigitalBase 宛て(Anthropic への課金なし)。
動作確認
/v1/messages に curl でリクエストを送る。
curl -sk https://<server>/v1/messages \
-H "x-api-key: sk-xxxxxxxxxxxxxxxxxxxxxxxx" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{"model":"<モデル名>","max_tokens":50,"messages":[{"role":"user","content":"say hi"}]}'
通常の Claude に戻す
設定した settings.json / settings.local.json から ANTHROPIC_BASE_URL / ANTHROPIC_AUTH_TOKEN を削除する。
トラブルシューティング
| 症状 | 原因 / 対処 |
|---|---|
401 | API キー誤り。ANTHROPIC_AUTH_TOKEN の sk-... を確認 |
404(/v1/messages) | ゲートウェイが旧バージョン(直結非対応)。付録 B の CCR 経由を使用 |
fetch failed / 証明書エラー | 自己署名証明書。NODE_TLS_REJECT_UNAUTHORIZED=0 claude で起動(本番は正式証明書を推奨) |
| ツール(編集・コマンド)が動かない | API キーの「リクエスト設定の優先」が「クライアント設定を優先」か確認 |
通常の claude まで DigitalBase に向く | グローバル(B)を設定中。使い分けたいなら (A) に変更 |
| 応答が遅い / タイムアウト | サーバ側のモデル / GPU 状況を確認 |
付録A: シェル関数で都度切り替え
~/.zshrc 等に追加する。
dbcode() {
ANTHROPIC_BASE_URL="https://<server>" \
ANTHROPIC_AUTH_TOKEN="sk-xxxxxxxxxxxxxxxxxxxxxxxx" \
NODE_TLS_REJECT_UNAUTHORIZED=0 \
claude "$@"
}
claude = 通常、dbcode = DigitalBase。
付録B: CCR 経由(/v1/messages 非対応の旧ゲートウェイ向け)
ローカル変換プロキシ CCR(claude-code-router) を挟む。まず CCR を入れる。
npm install -g @musistudio/claude-code-router
~/.claude-code-router/config.json に DigitalBase の /v1/chat/completions を Provider として登録する。ccr start → ccr code で起動する。
関連
- OpenAI 互換 API —
/v1/messages(Anthropic 互換)含む - APIアクセスキー
- ネットワーク / 動作環境 — HTTPS 化・公開設定