エラーコード一覧
HTTP ステータスコード
| ステータスコード | 意味 | 対処方法 |
|---|---|---|
| 200 | リクエスト成功 | — |
| 400 | リクエストパラメータエラー | JSON フォーマットおよび必須パラメータの有無を確認してください |
| 401 | 認証失敗 | API キーが正しいか、有効期限切れや無効化されていないか確認してください |
| 403 | 権限不足 | このキーが対象モデルへのアクセスを許可されていない可能性があります |
| 429 | レートリミット超過 | リクエスト頻度を下げるか、サポートに RPM 枠の引き上げをご相談ください |
| 500 | サーバーエラー | リクエストを再試行してください。継続する場合はサポートチケットを送信してください |
| 502/503 | 上流モデルサービスの異常 | しばらくしてから再試行してください。別のモデルへの切り替えも可能です |
エラーレスポンスのフォーマット
{
"error": {
"message": "Invalid API key provided: sk-nex-xxx...xxx.",
"type": "authentication_error",
"code": "invalid_api_key"
}
}よくあるエラーと解決方法
invalid_api_key
Invalid API key provided
原因: API キーが正しくないか、削除されています。
解決方法: コンソールでキーのステータスを確認し、完全なキーを再度コピーしてください。
model_not_found
Model 'xxx' not found
原因: モデル ID のスペルミス、またはそのモデルがお客様のプランで有効化されていません。
解決方法: モデル ID が正しいか確認してください(大文字・小文字を区別します)。/v1/models エンドポイントで完全なモデル一覧を取得できます。
rate_limit_exceeded
Rate limit exceeded
原因: リクエスト頻度が RPM(1分あたりのリクエスト数)の上限を超えました。
解決方法: リクエスト頻度を下げ、リクエスト間隔を広げてください。より高い上限が必要な場合はサポートにご連絡ください。
context_length_exceeded
This model's maximum context length is xxx tokens
原因: 入力と出力の合計トークン数がモデルの上限を超えました。
解決方法: 入力内容の長さを減らすか、max_tokens パラメータの値を下げてください。
リトライ戦略の推奨
429 および 5xx エラーには、エクスポネンシャルバックオフによるリトライを推奨します:
import time
import openai
def call_with_retry(client, max_retries=3, **kwargs):
for attempt in range(max_retries):
try:
return client.chat.completions.create(**kwargs)
except openai.RateLimitError:
wait = 2 ** attempt
print(f"Rate limited, waiting {wait}s...")
time.sleep(wait)
except openai.APIStatusError as e:
if e.status_code >= 500:
wait = 2 ** attempt
time.sleep(wait)
else:
raise
raise Exception("Max retries exceeded")