ホーム / 学習 / OpenAI SDKでClaudeを使う:OpenAI互換エンドポイント、ストリーミング、ツール、制限
OpenAI SDK と Claude。互いに補完し合う形状の物理コネクターが、コードウィンドウ同士をつないでいる。SDK の互換性をわかりやすく表した比喩。

OpenAI SDK で Claude を使う:OpenAI 互換エンドポイント、ストリーミング、ツール、制限

OpenAI SDK向けに書かれたコードは、書き直さずにClaudeを呼び出せます。設定するのは base_url で、接続先はゲートウェイの /v1です。ゲートウェイキーとClaudeモデルIDを使用してください。エンドポイントはChat Completionsリクエストを受け付け、同じ形式でストリーミングし、関数呼び出しをサポートします。Claudeの一部の機能はAnthropicのネイティブ形式でのみ利用できます。切り替えるべきタイミングについては、最後のセクションで説明します。

エンドポイントの基本情報

項目 値
ベースURLhttps://aiprimetech.io/v1
チャットエンドポイントPOST https://aiprimetech.io/v1/chat/completions
モデル一覧GET https://aiprimetech.io/v1/models
認証Authorization: Bearer <key>; x-api-key も受け付けます
モデルClaudeのID(例: claude-sonnet-5);Codexグループのキーを使用する場合はGPTのID

Python

ターミナル
pip install openai
app.py
import os
from openai import OpenAI

client = OpenAI(base_url="https://aiprimetech.io/v1", api_key=os.environ["AIPRIME_API_KEY"])

resp = client.chat.completions.create(
    model="claude-sonnet-5",
    max_tokens=1024,
    messages=[
        {"role": "system", "content": "You are a concise assistant."},
        {"role": "user", "content": "Explain idempotency keys in two sentences."},
    ],
)
print(resp.choices[0].message.content)
print(resp.usage)

base_url の末尾に必要なのは /v1です。SDKは /chat/completions をその後に追加します。これがない場合 /v1 リクエストはウェブサイトに送られ、HTML が返されます。 /v1 を重複させると、次の結果が返されます 404 page not found.

Node.js

app.mjs
import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://aiprimetech.io/v1", apiKey: process.env.AIPRIME_API_KEY });

const resp = await client.chat.completions.create({
  model: "claude-sonnet-5",
  max_tokens: 1024,
  messages: [{ role: "user", content: "Write a haiku about retries." }],
});
console.log(resp.choices[0].message.content);

ストリーミング

stream.py
stream = client.chat.completions.create(
    model="claude-sonnet-5",
    max_tokens=2048,
    stream=True,
    stream_options={"include_usage": True},
    messages=[{"role": "user", "content": "Outline a zero-downtime migration."}],
)
for chunk in stream:
    if chunk.choices and chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)
    if chunk.usage:
        print("\n", chunk.usage)

長い回答にはストリーミングを使用してください。非ストリーミングのリクエストはクライアントのタイムアウト時間内に完了する必要がありますが、ストリーミングにはその制約がありません。 include_usage は、トークン数を含む最後のチャンクを追加します。その重要性について詳しくは、次をご覧ください LLMレスポンスのストリーミング.

関数呼び出し

tools.py
tools = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "description": "Current weather for a city",
        "parameters": {
            "type": "object",
            "properties": {"city": {"type": "string"}},
            "required": ["city"],
        },
    },
}]

resp = client.chat.completions.create(
    model="claude-sonnet-5", max_tokens=512, tools=tools,
    messages=[{"role": "user", "content": "What is the weather in Paris?"}],
)
call = resp.choices[0].message.tool_calls[0]
print(call.function.name, call.function.arguments)   # get_weather {"city": "Paris"}

返されるレスポンスには次が含まれます finish_reason: "tool_calls" およびOpenAI形式の tool_calls。関数を実行し、次の種類のメッセージを追加します: tool 。そのメッセージには実行結果と、それに対応する次の値を含めます: tool_call_id。その後、OpenAIモデルの場合とまったく同じように、再度呼び出します。

推論と思考

reasoning_effort はClaudeのeffort設定に対応し、次の値を受け付けます low, medium, high, xhigh または max。次の値は none 拒否されます。モデルが思考すると、その推論は別のフィールドに届きます。そのフィールドは reasoning_content フィールドで、次のフィールドと並んで配置されます: content。そのため、次を読み取るコードは message.content 変更せずに引き続き動作します。

reasoning.py
resp = client.chat.completions.create(
    model="claude-opus-5-5", max_tokens=4096, reasoning_effort="high",
    messages=[{"role": "user", "content": "Find the bug in this function: ..."}],
)

モデル

モデルID 用途
claude-sonnet-5コーディングとエージェント作業の標準モデル:高速、高性能、中程度の価格。
claude-opus-5-5より難しい推論、大規模なリファクタリング、長時間のエージェント実行。
claude-fable-5-1最も高性能で最も高価。最も難しいタスクに絞って使いましょう。
claude-haiku-4-5低価格で高速:タイトル、要約、分類、小さな処理。

これらのIDをそのまま使用してください。次のような日付付きの古いIDは claude-3-5-sonnet-20241022 一部のモデル一覧にまだ表示されますが、提供されておらず、モデルがサポートされていないというエラーが返されます。

ネイティブのAnthropic APIを使用すべき場合

OpenAI形式は、チャット、ストリーミング、ツール、画像に対応しています。プロンプトキャッシュのブレークポイントの明示的な指定、ターン間で再送する思考ブロック、PDFドキュメント、引用が必要な場合は、同じゲートウェイでAnthropic独自のMessages形式を使用してください。次の Anthropic Python SDKガイド と Vercel AI SDKガイド で、その方法を説明しています。

トラブルシューティング

表示される内容 原因 対処方法
JSON の解析エラー、次で始まるレスポンス <base_url なしで /v1https://aiprimetech.io/v1
404 page not found/v1 重複必ず単一の /v1
401 Invalid API keyプロセス内でキーが未設定、または誤っている変数を確認してください。キーは特定のゲートウェイに紐づいています
モデルがサポートされていない日付付きの古いモデルID、またはスペルが誤っているモデルID上の表にあるIDを使用してください
'none' is not supportedreasoning_effort="none"使用するモデルは、 low 以上にするか、省略してください
429 Concurrency limit exceeded for user同時実行中のリクエストが多すぎる並列実行数を制限してください。次をご覧ください レート制限と再試行
長い回答でのタイムアウト長時間かかる非ストリーミングのリクエストストリーミングを使用するか、クライアントのタイムアウト時間を延ばしてください

よくある質問

OpenAI SDKでClaudeを使用できますか?
はい、OpenAI互換エンドポイントを通じて使用できます。base_urlをゲートウェイの/v1に設定し、ゲートウェイのAPIキーと、claude-sonnet-5. などのClaudeモデルIDを使用してください。ストリーミングと関数呼び出しはOpenAI形式で動作します。
OpenAI SDKでClaudeを使用する場合、どのベースURLを指定しますか?
/v1で終わるゲートウェイのURLです。例:https://aiprimetech.io/v1.。SDKが/chat/completionsを追加します。
OpenAI形式を通じてClaudeの関数呼び出しを使用できますか?
はい。OpenAI形式でtoolsを渡してください。Claudeはfinish_reasonをtool_callsとしてtool_callsを返すので、通常どおりtoolメッセージで応答します。
ネイティブのAnthropic APIを使用すべきなのはどのような場合ですか?
明示的なプロンプトキャッシュ、ターンをまたぐ思考ブロック、PDF入力、引用が必要な場合です。これらはAnthropicのMessages形式に含まれています。
数分でClaudeの利用を開始

APIキーを取得 — Anthropicアカウントもウェイトリストへの登録も不要です。

APIキーを取得

AI Prime Techは独立したAPIゲートウェイです。Anthropicとの提携関係はなく、同社の承認を受けておらず、同社の再販業者でもありません。Claudeおよび関連するモデル名は、それぞれの所有者の商標です。

Claude APIのその他のガイド

Claude APIキーの取得方法Claude API の料金を解説Claude APIを最も安く利用する方法Claude APIでCursorを無制限に利用Claude Codeへの無制限アクセスClaude APIゲートウェイとAnthropicへの直接接続の比較Claude モデルを解説:Claude Opus、Sonnet、Haiku、Fable のモデル比較 — すべての Claude API モデル、Anthropic のモデル名と料金(2026)暗号資産でClaude APIの料金を支払うウェイティングリストなしでClaude APIを利用Claudeのトークン使用量を削減する方法Claude APIでClineを無制限に利用Claude APIでRoo Codeを無制限に利用JetBrains IDEでClaudeを無制限に利用ゲートウェイ経由でAiderとClaudeを使う:ANTHROPIC_API_BASE、設定ファイル、アーキテクトモード、問題の解決方法VS CodeでClaudeを無制限に利用Claude向けのOpenCode設定:opencode.jsonの設定、モデル、よくあるエラーゲートウェイ経由でHermes AgentとClaudeを使う:カスタムプロバイダーの設定、コスト管理、問題の解決方法ClaudeでOpenClawを無制限に実行Anthropic互換APIとはClaude CodeのAPIキー — ANTHROPIC_API_KEY:取得方法、設定方法、代わりにclaude setup-tokenを使うべき場合Claude Code APIのコスト — 料金と削減方法Claude APIエラーを解説:サーバーエラー500、過負荷529、レート制限429、不正なリクエスト400 — それぞれの解決方法Claude APIクレジットの購入方法 — Claudeクレジットがどの「Claudeアカウント購入」のオファーよりも優れている理由Claudeの無料API:無料のClaude APIキーはあるのか、2026に実際に無料で使えるものは?Claude APIとClaude Pro/Maxサブスクリプション — どちらを選ぶべきかカスタムプロバイダーでCodex CLIを使う:config.toml、GPTとClaudeのモデル、IDE拡張機能、問題の解決方法Claudeをn8nに接続するLiteLLMからClaudeへのルーティングKilo CodeでClaudeを使うゲートウェイ経由でGitHub Copilot ChatとClaudeを使う:Custom Endpointの設定、エージェントモード、問題の解決方法ゲートウェイ経由でZedをClaudeに接続するCherry StudioをClaudeに接続LangChainのChatAnthropic:インポート、base_url、ストリーミング、ツール、エラーAnthropic Python SDK:インストール、base_urlの設定、ストリーミング、エラー処理Vercel AI SDKでClaudeを使用:createAnthropicのbaseURL、ストリーミング、問題の修正ClaudeでFactory Droidを実行Claude Code APIの仕組みを解説アプリケーションへのClaude APIの統合Claudeを無制限に利用する方法 — 「Claude Codeのクラック版」が存在しない理由

その他の Claude API ガイド

Anthropic互換APIとはAnthropic Python SDK:インストール、base_urlの設定、ストリーミング、エラー処理Claude APIクレジットの購入方法Claude APIを最も安く利用する方法Claude APIエラーを解説:サーバーエラー500、過負荷529、レート制限429、不正なリクエスト400 — それぞれの解決方法Claudeの無料API:無料のClaude APIキーはあるのか、2026に実際に無料で使えるものは?アプリケーションへのClaude APIの統合Claude モデルを解説:Claude Opus、Sonnet、Haiku、Fable のモデル比較 — すべての Claude API モデル、Anthropic のモデル名と料金(2026)Claude API の料金を解説Claude APIゲートウェイとAnthropicへの直接接続の比較Claude APIとClaude Pro/Maxサブスクリプション — どちらを選ぶべきか暗号資産でClaude APIの料金を支払うウェイティングリストなしでClaude APIを利用Claude Code APIの仕組みを解説Claude Code APIのコスト — 料金と削減方法Claude CodeのAPIキー — ANTHROPIC_API_KEY:取得方法、設定方法、代わりにclaude setup-tokenを使うべき場合Claudeを無制限に利用する方法Claude API キーの取得方法Claudeのトークン使用量を削減する方法ゲートウェイ経由でHermes AgentとClaudeを使う:カスタムプロバイダーの設定、コスト管理、問題の解決方法ClaudeでOpenClawを無制限に実行Claude APIへの無制限アクセスとは無制限のClaude APIキーを取得する方法Claude Codeを無制限に利用 — トークン制限なしClaude Opus 4.8への無制限アクセスClaudeを無制限に利用 — プランと料金ゲートウェイ経由でAiderとClaudeを使う:ANTHROPIC_API_BASE、設定ファイル、アーキテクトモード、問題の解決方法Cherry StudioをClaudeに接続Claude Codeへの無制限アクセスClaude APIでClineを無制限に利用カスタムプロバイダーでCodex CLIを使う:config.toml、GPTとClaudeのモデル、IDE拡張機能、問題の解決方法Claudeの無制限アクセスでCursorを使うClaudeでFactory Droidを実行ゲートウェイ経由でGitHub Copilot ChatとClaudeを使う:Custom Endpointの設定、エージェントモード、問題の解決方法JetBrains IDEでClaudeを無制限に利用Kilo CodeでClaudeを使うLangChainのChatAnthropic:インポート、base_url、ストリーミング、ツール、エラーLiteLLMからClaudeへのルーティングClaudeをn8nに接続するClaude向けのOpenCode設定:opencode.jsonの設定、モデル、よくあるエラーClaude APIでRoo Codeを無制限に利用Vercel AI SDKでClaudeを使用:createAnthropicのbaseURL、ストリーミング、問題の修正VS CodeでClaudeを無制限に利用ゲートウェイ経由でZedをClaudeに接続する