この404が分かりにくいのは、通常そのモデル自体は存在するからです。Anthropicのドキュメントやブログ記事、前四半期のコードには載っているかもしれません。しかし、現在あなたのAPIキーに指定を許可された一覧には存在しないのです。
エラー
{
"type": "error",
"error": {
"type": "not_found_error",
"message": "model: claude-3-5-sonnet"
}
}原因と対処法の概要
| 原因 | 対処法 |
|---|---|
| 廃止された日付付きスナップショット | スナップショットは公開されたスケジュールに従って非推奨となり、その後解決されなくなります。現在のものに移行してください。 |
| 一度も存在しなかったエイリアス | `claude-3-5-sonnet`はファミリー名であり、呼び出し可能なIDではありません。AnthropicのIDにはバージョンまたは日付のサフィックスが含まれます。 |
| モデルは実在するが、アカウントで有効になっていない | 最新モデルはティアによって制限される場合があります。この404は入力ミスと区別できません。ドキュメントではなく、modelsエンドポイントを確認してください。 |
| AnthropicエンドポイントでOpenAIモデル名を使用している | api.anthropic.comの`gpt-4o`はルーティングエラーではなく、見つからないモデルです。1つのエンドポイントで両方を使いたい場合はゲートウェイを使用してください。 |
ドキュメントではなくAPIに尋ねる
ドキュメントはカタログを説明しますが、modelsエンドポイントはあなたのカタログを説明します。両者が一致しない場合、正しいのはエンドポイントです。この一覧にないものは、他の場所でどれほど最新に見えても404になります。
curl -s https://api.anthropic.com/v1/models \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
| grep '"id"'意図的に固定し、意図的にアップグレードする
日付付きスナップショットをハードコードすると再現性を得られますが、自分で選んでいない日に将来404になる可能性があります。設定からモデルIDを読み込めば、修正はコード変更ではなくデプロイ時の値になります。また、モデルが見つからないのではなく混雑している場合にフェイルオーバーできるのも、同じ切り替えです。
import os
# One place to change when a snapshot retires.
MODEL = os.environ.get("LLM_MODEL", "claude-sonnet-5")
resp = client.chat.completions.create(
model=MODEL,
messages=[{"role": "user", "content": "ping"}],
)404と400、403を区別する
404は名前が何も解決しなかったことを意味します。400は名前は正しいものの、リクエストが不正(不正なパラメーター、形式不正のコンテンツなど)という意味です。403はモデルは存在するものの、使用が許可されていないことを意味します。モデル文字列の変更で解決するのは404だけです。
Kunavo経由で呼び出している場合
Kunavoのカタログは、/v1/modelsエンドポイントが返す一覧です。その中のすべてのIDは、残高のあるキーで呼び出せます。アカウントごとのモデル制限はないため、上記の「実在するがアカウントで有効でない」という原因は発生しません。同じエンドポイントでClaudeとGPTファミリーの名前を扱うため、OpenAI IDも誤ったエンドポイントへのリクエストではなく、そのままルーティングされます。上流での廃止はなお発生しますが、モデルが撤回されると、そのIDはサイレントに404になるのではなく、リダイレクトまたは文書化されます。現在のIDとトークンごとの料金は、 Claude API料金表。
よくある質問
404が一時的なエラーになることはありますか?
ありません。429、500、529とは異なり、同じモデル文字列で404を再試行しても再び失敗するだけです。文字列を変更するか、停止してください。
スナップショットの廃止時期はどうすれば分かりますか?
Anthropicは日付付きスナップショットの廃止日を公開しています。スナップショットを固定する場合、そのスケジュールはカレンダー項目です。設定からIDを読み込む場合は、1行の変更で済みます。
同じ名前で同僚のキーが動作するのはなぜですか?
モデルの利用可能性はアカウントのティアによって異なる場合があります。2つの/v1/modelsレスポンスを比較してください。その違いが答えです。