> ## Documentation Index
> Fetch the complete documentation index at: https://novita.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# レート制限

export const DynamicRPMList = () => {
  if (typeof document === "undefined") {
    return null;
  } else {
    let attempts = 0;
    const maxAttempts = 50;
    const formatAmount = num => {
      if (typeof num === "number") {
        return num.toLocaleString();
      }
      return num || "-";
    };
    const interval = setInterval(() => {
      const clientComponent = document.getElementById("dynamic-rpm-list");
      if (clientComponent && window.novitaRemoteData.llmModels.status === 'loaded') {
        const modelList = window.novitaRemoteData.llmModels.data.filter(model => {
          return Boolean(model.rpm);
        });
        const allModels = modelList.map(model => {
          const t1 = (model.quota_items || []).find(item => item.tier === "T1") || ({});
          const t2 = (model.quota_items || []).find(item => item.tier === "T2") || ({});
          const t3 = (model.quota_items || []).find(item => item.tier === "T3") || ({});
          const t4 = (model.quota_items || []).find(item => item.tier === "T4") || ({});
          const t5 = (model.quota_items || []).find(item => item.tier === "T5") || ({});
          return `
            <tr>
              <td rowspan="2" style="vertical-align: middle; max-width: 230px">${model.id}</td>
              <td>RPM</td>
              <td>${formatAmount(t1.rpm)}</td>
              <td>${formatAmount(t2.rpm)}</td>
              <td>${formatAmount(t3.rpm)}</td>
              <td>${formatAmount(t4.rpm)}</td>
              <td>${formatAmount(t5.rpm)}</td>
            </tr>
            <tr>
              <td>TPM</td>
              <td>${formatAmount(t1.tpm)}</td>
              <td>${formatAmount(t2.tpm)}</td>
              <td>${formatAmount(t3.tpm)}</td>
              <td>${formatAmount(t4.tpm)}</td>
              <td>${formatAmount(t5.tpm)}</td>
            </tr>
          `;
        }).join('');
        clientComponent.innerHTML = `
          <table class="table table-big">
            <thead>
              <tr>
                <th>Model</th>
                <th></th>
                <th>T1</th>
                <th>T2</th>
                <th>T3</th>
                <th>T4</th>
                <th>T5</th>
              </tr>
            </thead>
            <tbody>
              ${allModels}
            </tbody>
          </table>
        `;
        clearInterval(interval);
      }
      attempts++;
      if (attempts >= maxAttempts) {
        clearInterval(interval);
      }
    }, 200);
    return <div id="dynamic-rpm-list"></div>;
  }
};

レート制限は、特定の期間内にユーザーが当社の LLM API へリクエストできる頻度を制御します。これらの制限を理解し、その範囲内で利用することは、API を最適に使用するために不可欠です。

<Tip>
  API を初めて利用しますか？まずキーの作成方法と認証方法について、[API キー](/docs/ja/guides/llm-api-keys)をご覧ください。
</Tip>

## 1. レート制限を理解する

### レート制限とは？

レート制限は、定義された期間内に実行できる API リクエスト数を制限します。これにより、次のことが可能になります。

* API の不正利用や誤用を防止する。
* ユーザー間でリソースを公平に分配する。
* 一貫した API パフォーマンスと信頼性を維持する。
* 当社サービスの安定性を保護する。

### デフォルトのレート制限

各アカウントには、モデル呼び出しに対するデフォルトのレート制限があります。これは RPM（モデルごとの 1 分あたりのリクエスト数）および TPM（モデルごとの 1 分あたりのトークン数）で測定されます。レート制限はアカウントのティアによって異なり、以下の表に示されています。

<table class="table table-big">
  <thead>
    <tr>
      <th class="min-w-10">ティア</th>
      <th>到達条件</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>T1</td>
      <td>直近 3 暦月のいずれにおいても、月間チャージ額が \$50 を超えていない。</td>
    </tr>

    <tr>
      <td>T2</td>
      <td>直近 3 暦月のいずれにおいても、月間チャージ額が \$50 以上で、\$500 を超えていない。</td>
    </tr>

    <tr>
      <td>T3</td>
      <td>直近 3 暦月のいずれにおいても、月間チャージ額が \$500 以上で、\$3,000 を超えていない。</td>
    </tr>

    <tr>
      <td>T4</td>
      <td>直近 3 暦月のいずれにおいても、月間チャージ額が \$3,000 以上で、\$10,000 を超えていない。</td>
    </tr>

    <tr>
      <td>T5</td>
      <td>直近 3 暦月の少なくとも 1 か月で、月間チャージ額が \$10,000 以上である。</td>
    </tr>
  </tbody>
</table>

<Tip>直近 3 暦月とは、当月とその前の 2 か月を指します。</Tip>

ティア別のデフォルトレート制限（RPM / TPM）:

<DynamicRPMList />

## 2. レート制限への対処

### レート制限を監視する方法

レート制限を超過すると、API は次を返します。

* HTTP ステータスコード: 429 (Too Many Requests);
* レスポンス本文内のレート制限超過メッセージ。

### ベストプラクティス

レート制限に達しないようにするには、次のことを行ってください。

1. アプリケーションにリクエストスロットリングを実装する。
2. リトライに指数バックオフを追加する。
3. API の使用パターンを監視する。

### レート制限に達した場合

429 エラーを受け取った場合は、次の対応が可能です。

1. **後で再試行**: リクエストを再試行する前に、短時間待機します。
2. **リクエストを最適化**: リクエスト頻度を減らします。
3. **レート制限の引き上げ**: より高いレート制限が必要な場合は、次の方法があります。
   * <a href="https://discord.gg/YyPRAzwp7P" target="_blank">Discord でお問い合わせください</a>
   * または <a href="https://meet.brevo.com/novita-ai/contact-sales" target="_blank">当社の営業チームとの通話を予約してください</a>

***

**ご不明な点がございましたら、[Discord でお問い合わせください](https://discord.gg/YyPRAzwp7P)。**
