1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude Codeを自由に操る!複数プロバイダ対応プロキシツール徹底解説

Posted at

GitHub リポジトリ: nogataka/claude-code-proxy-ts


1. このツールでできること

Claude Code Proxy を導入すると、Claude形式のAPI呼び出しを維持したまま複数のプロバイダ(OpenAI, Azure, Ollama, Databricks など)を柔軟に切替利用できます。この記事では、概要から仕組み、設定方法、今後の展望までをわかりやすく紹介します。

図: 機能対応表

機能 OpenAI Azure Ollama Databricks
SSEストリーム △(同期中心)
ツール呼び出し
モデル抽象化

2. なぜ必要なのか?背景と課題

各プロバイダは API 仕様や挙動が微妙に異なり、クライアント実装が複雑になりがちです。Claude Code Proxy は Claude形式で統一されたAPI を提供し、差分をサーバ側で吸収します。

図: 従来の課題


3. Claude Code Proxyとは?

Claude Code Proxy は、Claude形式 /v1/messages を受け取り、各プロバイダへ変換・転送するプロキシサーバです。主な機能は以下の通りです。

  • 複数プロバイダ対応(OpenAI, Azure, Ollama, Databricks)
  • SSEストリーミング(Claudeイベント形式)
  • ツール呼び出し & マルチモーダル対応
  • モデル抽象化(big/middle/small)
  • クライアント認証 & ロギング機能

図: 全体像


4. まずは動かしてみよう

最短導入手順

npx @nogataka/claude-code-proxy-ts@latest
  • 初回起動で ~/.claude-code-proxy-ts/config.json が自動生成。
  • 環境変数で接続先を指定:
ANTHROPIC_BASE_URL=http://localhost:8082 claude

図: 導入フロー


5. 設定ファイルを理解する

設定は JSON 一枚で管理します。主要項目:

  • providers: 各プロバイダの adapter・APIキー・baseUrl・モデル定義
  • routing: defaultProvider・fallbackOrder
  • limits: timeout・retries・max/min tokens
  • client: expectedApiKey でアクセス制御

図: 設定ファイル構造


6. 仕組みをのぞいてみる(アーキテクチャ)

Fastify ベースで構成され、以下の流れで処理が進みます。

  1. API層でリクエスト受信
  2. 変換層で Claude形式 ⇔ プロバイダ形式を変換
  3. クライアント層で実際の API 呼び出し
  4. レスポンスを Claude形式 SSE に再構築

図: モジュール構成


7. リクエストとレスポンスの変換ロジック

リクエスト変換

  • Claude メッセージ → OpenAI/Azure/Ollama/Databricks の形式へ変換
  • system/user/assistant 役割、tools、画像、max_tokens 等を適用

レスポンス変換

  • Providerのレスポンスを Claude のイベント形式に再構築
  • SSE: message_start → content_block_start → content_block_delta → content_block_stop → message_stop
  • Usage 再構築、エラー統一

図: SSEタイムライン


8. プロバイダごとの特徴

Adapter 特徴 注意点
openai Chat Completions互換 SSE対応
azure デプロイ名を model に記入 baseUrl に /deployments を含めない
ollama JS SDK 利用、ローカルモデル対応 stream切替可能
databricks /invocations 経由で同期呼出 stream非対応

9. 運用のポイント

  • ログレベル切替(debugで変換前後を出力)
  • 認証:expectedApiKey によるAPIキー検証
  • リトライ・タイムアウト制御
  • fallbackOrder による可用性確保

図: リクエストライフサイクル監視ポイント


10. 使い方の具体例

  • OpenAI をデフォルト、Azure を /azure 経由で利用
  • Ollama をローカル検証に活用
  • Databricks を同期APIで呼出

図: プロバイダ切替シーケンス


11. これからの拡張(ロードマップ)

Claude Code Proxy はさらに以下の拡張を予定しています。

監視とメトリクス収集(Prometheus/Grafana)

  • Proxyに Prometheus Exporter を内蔵し、リクエスト数/エラー率/トークン使用量を収集
  • Grafana ダッシュボードで可視化し、SLA/コスト監視を強化

マルチテナント対応とアクセス制御

  • テナントごとの APIキー管理
  • テナント別ポリシー設定(利用可能モデル/プロバイダ制御)
  • 管理UI(React/Next.js)でテナント管理を容易化
  • Terraform/Helmと連携してクラウド運用対応

タイムライン

Claude Code Proxy 拡張ロードマップ


12. まとめ

Claude Code Proxy は「クライアントはClaude形式のまま、プロバイダ差分をサーバ側で吸収」することで、複数プロバイダを効率的に活用できます。導入の手軽さと運用のしやすさを両立し、今後の拡張でさらに強力な基盤になることが期待されます。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?