Ошибка 429: что делать, если glm-4.5-air не отвечает

Код 429 означает, что сработало ограничение скорости: число запросов или токенов за единицу времени превысило квоту вашего тарифа.

429 Too Many Requests — это ответ об ограничении скорости, а не ошибка. Сам запрос корректен, но превышена допустимая скорость или параллельность для вашего тарифа. Достаточно повторить запрос с задержкой в пределах окна из заголовков ответа; менять тело запроса не нужно.

glm-4.5-air предоставляется компанией Z.AI. Всё на этой странице — причины, решения и измеренные данные — собрано по реальной работе этой модели на уровне шлюза.

В этом шлюзе самая частая причина — Слишком много параллельных запросов. Рекомендуемое первое действие: Ограничьте параллельность и добавьте экспоненциальную задержку.

Возможные причины

  • Слишком много параллельных запросов
  • Квота текущего тарифа исчерпана
  • Повтор без задержки после отказа

Как исправить

  • Ограничьте параллельность и добавьте экспоненциальную задержку
  • Переключитесь на тариф с большей квотой
  • Кэшируйте повторяющиеся запросы

Повтор с экспоненциальной задержкой

Ниже — пример повтора, когда glm-4.5-air возвращает 429: до 5 попыток, ожидание растёт и добавляется случайный джиттер, чтобы параллельные запросы не повторялись одновременно. Base URL и API key читаются из переменных окружения — не хардкодьте их.

import os, time, random
import requests

BASE  = os.getenv("OPENAI_BASE_URL")   # e.g. https://<your-gateway>/v1
KEY   = os.getenv("OPENAI_API_KEY")
MODEL = 'glm-4.5-air'


def chat(messages, retries=5):
    """Retry with exponential backoff + jitter."""
    for i in range(retries):
        try:
            r = requests.post(
                BASE + "/chat/completions",
                headers={"Authorization": "Bearer " + KEY},
                json={"model": MODEL, "messages": messages, "stream": True},
                timeout=60,
            )
            if r.status_code == 429 or r.status_code >= 500:
                time.sleep(min(2 ** i + random.uniform(0, 1), 30))
                continue
            r.raise_for_status()
            return r.json()
        except requests.exceptions.Timeout:
            time.sleep(min(2 ** i + random.uniform(0, 1), 30))
    raise RuntimeError("gave up after " + str(retries) + " retries")


print(chat([{"role": "user", "content": "hello"}]))

Ключевые данные этой модели

API-эндпоинтhttps://api.airai.cc/v1
Совместимо с OpenAIOpenAI-compatible
ПроизводительZ.AI
Контекст131.1K
ВозможностиReasoning, Tools, Open Weights
Форматы APIopenai, openai-response, openai-response-compact, anthropic, gemini, openai-alpha-search
Формула биллингаp * 0.2 + cr * 0.03 + cc * 0 + c * 1.1

Частые вопросы

Нужен ли случайный джиттер при повторах?

Обычно не нужно менять код, достаточно скорректировать темп вызовов. Повтор — самый эффективный первый шаг. При тарифе p * 0.2 + cr * 0.03 + cc * 0 + c * 1.1 неудачные запросы не идут в использование. Для повторяемых ошибок используйте экспоненциальную задержку, для остальных возвращайте ошибку сразу.

Уменьшает ли переход на меньшую модель число 429?

Имейте наготове резервную модель. Резерв на уровне архитектуры надёжнее, чем латать каждую ошибку по отдельности. У этой модели от Z.AI несколько upstream-узлов, между которыми шлюз может переключаться. Вынесите имя модели в конфиг, чтобы переключение upstream не требовало правок кода.

Будет ли списание, если glm-4.5-air вернул 429?

Оплачивается только уже сгенерированный вывод, неудачная часть — нет. Тарификация: p * 0.2 + cr * 0.03 + cc * 0 + c * 1.1, поэтому без вывода нет списания. При тарифе p * 0.2 + cr * 0.03 + cc * 0 + c * 1.1 стоимость длинного вывода определяется в основном выходными токенами. Оценивая стоимость по p * 0.2 + cr * 0.03 + cc * 0 + c * 1.1, учитывайте и бюджет на повторы.

Неполный вывод glm-4.5-air — это то же самое, что 429?

Сгруппируйте ошибки по времени и узлу: закономерность обычно видна сразу. Сохраняйте идентификатор запроса и исходный текст ответа, иначе локализовать нечего. Модель предоставляется Z.AI, поэтому статус upstream определяется объявлениями вендора. Сначала воспроизведите это в тестовом окружении с тем же телом запроса.

Другие ошибки этой модели

Другие модели с той же ошибкой

Данные обновлены: 2026-10-10 15:45

Техническая поддержкаОнлайн-поддержка
Наверх