APIキーチェッカー
OpenAI互換APIのAPIキーとベースURLを、ブラウザーからそのままテストできます。
このツールについて
AIツールがモデルのAPIに接続できないとき、原因はたいてい次のいずれかです。ベースURLのパスの過不足、別のプロバイダーのキー、存在しないモデルID、ブラウザーによるリクエストのブロック。このチェッカーは、ツールが送るのと同じリクエストをブラウザーから送り、どれが原因かを示します。cheapaimodelに限らず、OpenAI形式に従うAPIならどれでも使えます。
チェックの仕組み
ベースURLを整える
リクエストを送る前に、下の規則でアドレスを整えます。小さな入力ミスで本当の問題が見えなくなるのを防ぐためです。/v1が必要とわかっているホスト(OpenAIとcheapaimodel)には/v1を追加します。それ以外のホストでは指摘するだけにとどめます。/v1なしで動くプロバイダーもあるためです。
ベースURLの修正
https://api.example.com/v1https://を追加しました。http://localhost:11434/v1http://を追加しました。https://api.example.com/v1http://をhttps://に変更しました。HTTPSで配信されるページからは、暗号化されていないHTTPを呼び出せません。サーバーがHTTPにしか対応していない場合は、curlでテストしてください。https://api.example.com/v1末尾の/chat/completionsを削除しました。ツールがリクエストごとに自動で付け加えます。/chat/completionshttps://api.example.com/余分なスラッシュを削除しました。/v1/https://api.example.com/v1/v1が2回含まれていたため、1つにしました。/v1https://api.example.com/v1クエリ文字列または#以降を削除しました。?key=abchttps://api.openai.com/v1このAPIに必要な/v1を追加しました。https://apiそれは当社のWebサイトで、APIではありません。APIのアドレスに切り替えました。console.cheapaimodel.ai/v1
モデル一覧を取得
Authorizationヘッダーにキーを付けて、GET <base_url>/modelsを送ります。料金はかからず、アドレスとキーの組み合わせが使えることを確認できます。15秒たっても完了しなければ打ち切ります。
テストメッセージを送る(任意)
ボタンを押したときだけ、「Reply with OK.」と尋ねるストリーミングのchat completionを、max_tokens 16で1回送ります。最初のトークンは、送信してからストリームの最初のチャンクが届くまでの時間で、合計はストリームが終わるまでの時間です。モデルがmax_tokensを受け付けない場合は、max_completion_tokensでもう一度送ります。30秒たっても完了しなければ打ち切ります。
応答を読み解く
レスポンスにエラーコードがあれば、HTTPステータスより優先します。model_not_foundはモデルIDの誤り、insufficient_quotaはクレジット不足です。コードがなければステータスで判断します。401はキー、403は権限か残高、404はパス、429はレート制限、5xxはプロバイダー側の問題です。プレーンテキストの404はたいてい/v1の抜け、HTMLページはAPIではなくWebサイトのアドレスを入力していることを示します。
CORSとサーバー停止を見分ける
ブラウザーがレスポンスを見せない場合、ページはキーを付けずに、同じアドレスへno-corsモードでもう1回リクエストを送ります。サーバーが応答すれば、稼働してはいるもののWebページからのアクセスをブロックしている(CORS)ということなので、curlコマンドでテストしてください。応答がなければ、お使いのネットワークからは到達できません。
キーの送信先
リクエストはこのページから、入力したベースURLへ直接送られます。キーはこのページのメモリ上にしかありません。cheapaimodelに送られることも、ブラウザーに保存されることも、アドレスバーに載ることもなく、タブを閉じれば消えます。curlコマンドでは、表示を選ばない限りキーは伏せられます。
よくあるエラーと対処法
キーが拒否されました(401)
サーバーがこのAPIキーを受け付けません。入力ミス、無効化、期限切れのほか、このベースURLとは別のプロバイダーのキーである可能性があります。空白を含めずにキーをコピーし直し、このプロバイダーのキーかどうか確認してください。
アクセスが拒否されました(403)
キーは有効ですが、この呼び出しは許可されていません。モデル、IPアドレス、アカウントに制限があるか、残高が不足している可能性があります。
APIのパスではありません(404)
サーバーがAPIエラーではなく、プレーンテキストの404を返しました。ほとんどの場合、ベースURLに/v1が抜けています。
モデルが見つかりません
このIDのモデルは、このキーでは利用できません。モデルIDは完全に一致させる必要があります。上の一覧か、プロバイダーのモデルページからコピーしてください。
レート制限(429)
リクエストが多すぎるか、このキーがプロバイダーの上限に達しています。少し待ってから再試行してください。何度も起きる場合は、プロバイダーのレート制限を確認してください。
ブラウザにブロックされました(CORS)
サーバーには届いていますが、Webページからのレスポンスの読み取りを許可していません。キーの良し悪しはこれだけではわかりません。下のcurlコマンドをターミナルで実行して、実際のレスポンスを確認してください。
タイムアウト
15秒以内に応答がありませんでした。サーバーが過負荷になっているか、応答しない宛先を指している可能性があります。