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

# Ограничения частоты вызовов (Rate Limits)

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.jiekouRemoteData.llmModels.status === 'loaded') {
        const modelList = window.jiekouRemoteData.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>模型</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>;
  }
};

## Понимание ограничений частоты вызовов

Ограничения частоты вызовов определяют количество API-запросов, которые можно выполнить за определенный период времени, и помогают оптимизировать использование API.

* Предотвращают злоупотребление API и его неправильное использование
* Обеспечивают справедливое распределение ресурсов
* Поддерживают производительность и надежность API
* Защищают стабильность сервиса

## Ограничения частоты вызовов по умолчанию

Для каждого аккаунта при вызове моделей действуют ограничения скорости по умолчанию, которые измеряются в RPM (количество запросов к каждой модели в минуту) и TPM (количество token для каждой модели в минуту). Ограничения скорости различаются в зависимости от уровня аккаунта; подробные критерии приведены в таблице ниже.

<table class="table table-big">
  <thead>
    <tr>
      <th class="min-w-10">Уровень Quota</th>
      <th>Критерии (единица: доллары США)</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>T1</td>
      <td>За последние 3 календарных месяца максимальная суммарная сумма пополнений за один месяц \< \$50</td>
    </tr>

    <tr>
      <td>T2</td>
      <td>\$50 ≤ за последние 3 календарных месяца максимальная суммарная сумма пополнений за один месяц \< \$500</td>
    </tr>

    <tr>
      <td>T3</td>
      <td>\$500 ≤ за последние 3 календарных месяца максимальная суммарная сумма пополнений за один месяц \< \$3000</td>
    </tr>

    <tr>
      <td>T4</td>
      <td>\$3000 ≤ за последние 3 календарных месяца максимальная суммарная сумма пополнений за один месяц \< \$10000</td>
    </tr>

    <tr>
      <td>T5</td>
      <td>\$10000 ≤ за последние 3 календарных месяца максимальная суммарная сумма пополнений за один месяц</td>
    </tr>
  </tbody>
</table>

Ограничения скорости по умолчанию для каждого уровня (RPM / TPM):

<DynamicRPMList />

## Как избежать срабатывания ограничений частоты вызовов

Если количество ваших API-запросов превышает ограничения частоты вызовов, API вернет:

* HTTP-статус: 429 (слишком много запросов).
* В теле ответа будет возвращена информация о превышении частоты вызовов.

Чтобы избежать срабатывания ограничений частоты вызовов, вы можете предпринять следующие меры:

* Реализовать ограничение запросов в вашем приложении.
* Использовать механизм экспоненциальной задержки при повторных попытках.
* Отслеживать использование API.

## Обработка ошибки 429

Если вы получили ошибку 429, вы можете попробовать следующие действия:

* **Повторить попытку позже**: подождите некоторое время, а затем повторите запрос.
* **Оптимизировать запросы**: уменьшите частоту запросов.
* **Повысить ограничения частоты вызовов**: если вам нужны более высокие ограничения частоты вызовов, свяжитесь с нами.
