Source: https://aiprimetech.io/ja/learn/openai-compatible-claude-api/ [ホーム](/ja/) / [学習](/ja/learn/) / OpenAI SDKでClaudeを使う:OpenAI互換エンドポイント、ストリーミング、ツール、制限 # OpenAI SDK で Claude を使う:OpenAI 互換エンドポイント、ストリーミング、ツール、制限 OpenAI SDK向けに書かれたコードは、書き直さずにClaudeを呼び出せます。設定するのは base_url で、接続先はゲートウェイの /v1です。ゲートウェイキーとClaudeモデルIDを使用してください。エンドポイントはChat Completionsリクエストを受け付け、同じ形式でストリーミングし、関数呼び出しをサポートします。Claudeの一部の機能はAnthropicのネイティブ形式でのみ利用できます。切り替えるべきタイミングについては、最後のセクションで説明します。 ## エンドポイントの基本情報 | 項目 | 値 | ベースURL | https://aiprimetech.io/v1 | チャットエンドポイント | POST https://aiprimetech.io/v1/chat/completions | モデル一覧 | GET https://aiprimetech.io/v1/models | 認証 | Authorization: Bearer ; 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レスポンスのストリーミング](/ja/blog/streaming-api-guide/). ## 関数呼び出し 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ガイド](/ja/learn/anthropic-python-sdk/) と [Vercel AI SDKガイド](/ja/learn/use-claude-api-with-vercel-ai-sdk/) で、その方法を説明しています。 ## トラブルシューティング | 表示される内容 | 原因 | 対処方法 | JSON の解析エラー、次で始まるレスポンス < | base_url なしで /v1 | https://aiprimetech.io/v1 | 404 page not found | /v1 重複 | 必ず単一の /v1 | 401 Invalid API key | プロセス内でキーが未設定、または誤っている | 変数を確認してください。キーは特定のゲートウェイに紐づいています | モデルがサポートされていない | 日付付きの古いモデルID、またはスペルが誤っているモデルID | 上の表にあるIDを使用してください | 'none' is not supported | reasoning_effort="none" | 使用するモデルは、 low 以上にするか、省略してください | 429 Concurrency limit exceeded for user | 同時実行中のリクエストが多すぎる | 並列実行数を制限してください。次をご覧ください [レート制限と再試行](/ja/blog/rate-limits-and-retries/) | 長い回答でのタイムアウト | 長時間かかる非ストリーミングのリクエスト | ストリーミングを使用するか、クライアントのタイムアウト時間を延ばしてください ## よくある質問 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キーを取得](/register) AI Prime Techは独立したAPIゲートウェイです。Anthropicとの提携関係はなく、同社の承認を受けておらず、同社の再販業者でもありません。Claudeおよび関連するモデル名は、それぞれの所有者の商標です。 ## Claude APIのその他のガイド [Claude APIキーの取得方法](/ja/learn/how-to-get-a-claude-api-key/)[Claude API の料金を解説](/ja/learn/claude-api-pricing-explained/)[Claude APIを最も安く利用する方法](/ja/learn/cheapest-way-to-use-claude-api/)[Claude APIでCursorを無制限に利用](/learn/use-claude-api-with-cursor/)[Claude Codeへの無制限アクセス](/ja/learn/use-claude-api-with-claude-code/)[Claude APIゲートウェイとAnthropicへの直接接続の比較](/ja/learn/claude-api-vs-anthropic-direct/)[Claude モデルを解説:Claude Opus、Sonnet、Haiku、Fable のモデル比較 — すべての Claude API モデル、Anthropic のモデル名と料金(2026)](/ja/learn/claude-api-models-compared/)[暗号資産でClaude APIの料金を支払う](/ja/learn/claude-api-with-crypto-payment/)[ウェイティングリストなしでClaude APIを利用](/ja/learn/claude-api-without-waitlist/)[Claudeのトークン使用量を削減する方法](/ja/learn/how-to-reduce-claude-token-usage/)[Claude APIでClineを無制限に利用](/ja/learn/use-claude-api-with-cline/)[Claude APIでRoo Codeを無制限に利用](/ja/learn/use-claude-api-with-roo-code/)[JetBrains IDEでClaudeを無制限に利用](/ja/learn/use-claude-api-with-jetbrains/)[ゲートウェイ経由でAiderとClaudeを使う:ANTHROPIC_API_BASE、設定ファイル、アーキテクトモード、問題の解決方法](/ja/learn/use-claude-api-with-aider/)[VS CodeでClaudeを無制限に利用](/ja/learn/use-claude-api-with-vscode/)[Claude向けのOpenCode設定:opencode.jsonの設定、モデル、よくあるエラー](/ja/learn/use-claude-api-with-opencode/)[ゲートウェイ経由でHermes AgentとClaudeを使う:カスタムプロバイダーの設定、コスト管理、問題の解決方法](/ja/learn/run-hermes-agent-with-claude-api/)[ClaudeでOpenClawを無制限に実行](/ja/learn/run-openclaw-with-claude-api/)[Anthropic互換APIとは](/ja/learn/anthropic-compatible-api/)[Claude CodeのAPIキー — ANTHROPIC_API_KEY:取得方法、設定方法、代わりにclaude setup-tokenを使うべき場合](/ja/learn/claude-code-api-key-setup/)[Claude Code APIのコスト — 料金と削減方法](/ja/learn/claude-code-api-costs/)[Claude APIエラーを解説:サーバーエラー500、過負荷529、レート制限429、不正なリクエスト400 — それぞれの解決方法](/ja/learn/claude-api-errors-troubleshooting/)[Claude APIクレジットの購入方法 — Claudeクレジットがどの「Claudeアカウント購入」のオファーよりも優れている理由](/ja/learn/buy-claude-api-credits/)[Claudeの無料API:無料のClaude APIキーはあるのか、2026に実際に無料で使えるものは?](/ja/learn/claude-api-free-trial/)[Claude APIとClaude Pro/Maxサブスクリプション — どちらを選ぶべきか](/ja/learn/claude-api-vs-subscription/)[カスタムプロバイダーでCodex CLIを使う:config.toml、GPTとClaudeのモデル、IDE拡張機能、問題の解決方法](/ja/learn/use-claude-api-with-codex/)[Claudeをn8nに接続する](/ja/learn/use-claude-api-with-n8n/)[LiteLLMからClaudeへのルーティング](/ja/learn/use-claude-api-with-litellm/)[Kilo CodeでClaudeを使う](/ja/learn/use-claude-api-with-kilo-code/)[ゲートウェイ経由でGitHub Copilot ChatとClaudeを使う:Custom Endpointの設定、エージェントモード、問題の解決方法](/ja/learn/use-claude-api-with-github-copilot/)[ゲートウェイ経由でZedをClaudeに接続する](/ja/learn/use-claude-api-with-zed/)[Cherry StudioをClaudeに接続](/ja/learn/use-claude-api-with-cherry-studio/)[LangChainのChatAnthropic:インポート、base_url、ストリーミング、ツール、エラー](/ja/learn/use-claude-api-with-langchain/)[Anthropic Python SDK:インストール、base_urlの設定、ストリーミング、エラー処理](/ja/learn/anthropic-python-sdk/)[Vercel AI SDKでClaudeを使用:createAnthropicのbaseURL、ストリーミング、問題の修正](/ja/learn/use-claude-api-with-vercel-ai-sdk/)[ClaudeでFactory Droidを実行](/ja/learn/use-claude-api-with-factory-droid/)[Claude Code APIの仕組みを解説](/ja/learn/claude-code-api/)[アプリケーションへのClaude APIの統合](/ja/learn/claude-api-integration/)[Claudeを無制限に利用する方法 — 「Claude Codeのクラック版」が存在しない理由](/ja/learn/get-unlimited-claude-usage/)