NezhaGateNezhaGate

アカウントとキーごとの制限、すべての回線が混み合っているときの応答、再試行とタイムアウトの設定方法。

既定のレート制限はありません

NezhaGate はアカウントごとのリクエスト頻度に既定の制限を設けておらず、処理能力もご利用量に合わせて拡張します。利用量を抑えたい場合は、キーごとに制限を設定してください。

キーごとの制限

コンソールの「API Keys」ページで、キーごとに設定します。空欄または 0 は無制限です:

設定項目内容超えたとき
1 分あたりのリクエスト数このキーが 1 分間に送れるリクエスト数の上限。429 rate_limit_exceeded
1 日の予算このキーが 1 日(UTC)に使える金額の上限(米ドル)。402 insufficient_quota
合計の利用上限このキーが合計で使える金額の上限(米ドル)。暴走させたくない自動化処理に向いています。402 insufficient_quota
モデル許可リストこのキーは、リストにあるモデルしか呼び出せません。403 permission_denied
IP 許可リストリストにある IP またはアドレス範囲からのリクエストだけを受け付けます。403 permission_denied

すべての回線が混み合っているとき

  • 各モデルは複数の回線で提供され、ゲートウェイがリクエストを回線間に振り分けます。あるモデルのすべての回線が同時に上限に達すると 429 が返り、OpenAI 互換のエンドポイントでは待つべき秒数が Retry-After ヘッダーで示されます。
  • 画像と動画のタスクは、混み合っていても拒否されません。順番待ちに入り(status が queued になり、順番と予想待ち時間が付きます)、順番が来ると自動で始まります。
  • 期間限定の無料モデルには 1 日あたりの呼び出し回数の上限もあり、超えると UTC 0 時にリセットされるまで 429 が返ります。

再試行の判断

HTTP対処
429Retry-After ヘッダーの秒数だけ待ってから再試行します。ヘッダーがなければ 1 秒、2 秒、4 秒と間隔を延ばしながら待ちます。
500 / 502 / 503 / 504指数バックオフ(1 秒、2 秒、4 秒、8 秒に少しランダムな揺らぎを加える)で再試行します。たいてい 3〜5 回で十分です。この種の失敗は課金されません。
その他の 4xxそのまま再試行しても解決しません。先に error.code に従ってリクエスト(パラメータ、モデル、キー、残高)を直してください。
ネットワークエラー / タイムアウト対話はそのまま再試行できます。画像と動画は、まずコールログでタスクが作成されたかを確認してから、再送信するか決めてください。
Python · 429 と 5xx の再試行
import random
import time
import requests


def post_with_retry(url, headers, payload, tries=5):
    for attempt in range(tries):
        r = requests.post(url, headers=headers, json=payload, timeout=600)
        if r.status_code == 429:
            time.sleep(float(r.headers.get("Retry-After", 2 ** attempt)))
            continue
        if r.status_code >= 500:
            time.sleep(2 ** attempt + random.random())     # 1, 2, 4, 8 s ... plus jitter
            continue
        return r                                           # 2xx, or a 4xx to fix in the request
    return r

タイムアウト

  • ストリーミングしない単一のリクエストは、約 10 分でエッジゲートウェイに切断されます(HTTP 524)。長い回答や推論モデルでは stream: true を使ってください。
  • クライアントのタイムアウトは 10 分以上に設定してください。短いと、長い回答が届く前にクライアント側で接続を切ってしまいます。
  • 画像と動画は非同期タスクで、送信リクエストはすぐに返るため、この制限は関係ありません。

さらに高い同時実行数が必要な場合

高い同時実行数を継続して使う予定があれば、事前に Telegram グループ またはサポートで利用量をお知らせください。利用量に合わせて容量を増やします。