Erreur 504 : que faire quand glm-5 échoue

Un 504 signifie que la passerelle a expiré en attendant le modèle amont : la requête a été envoyée, mais l'amont n'a pas répondu dans le délai imparti.

504 Gateway Timeout signifie que la passerelle a cessé d’attendre la réponse de l’upstream. La requête a été transmise, mais aucun résultat n’est revenu dans la limite imposée. Raccourcir la sortie, activer le streaming ou baisser max_tokens règle généralement le problème.

glm-5 est fourni par Z.AI. Tout sur cette page — causes, correctifs et données mesurées — est établi à partir du comportement réel de ce modèle au niveau de la passerelle.

Sur cette passerelle, le déclencheur le plus courant est : L'amont a mis plus de temps que le délai autorisé par la passerelle. La première action recommandée : Passez à la sortie en streaming.

Causes fréquentes

  • L'amont a mis plus de temps que le délai autorisé par la passerelle
  • Un contexte long a augmenté le temps d'inférence
  • Un nœud amont est bloqué
  • Une requête non diffusée avec une sortie très longue

Comment corriger

  • Passez à la sortie en streaming
  • Raccourcissez le contexte et réduisez max_tokens
  • Réessayez après une courte attente
  • Utilisez un modèle à inférence plus rapide

Nouvelle tentative avec backoff exponentiel

Le code ci-dessous réessaie lorsque glm-5 renvoie 504 : jusqu’à 5 tentatives, avec une attente croissante et un jitter aléatoire pour éviter que les appels concurrents ne réessaient simultanément. Lisez l’URL de base et la clé API depuis les variables d’environnement, ne les écrivez jamais en dur.

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-5'


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"}]))

Données clés de ce modèle

Point de terminaison APIhttps://api.airai.cc/v1
Compatible OpenAIOpenAI-compatible
FournisseurZ.AI
Contexte204.8K
CapacitésReasoning, Tools, Open Weights
Formats d’APIopenai, openai-response, openai-response-compact, anthropic, gemini, openai-alpha-search
Formule de facturationp * 1 + cr * 0.2 + cc * 0 + c * 3.2

Questions fréquentes

504 peut-il être causé par un proxy ou un autre saut réseau ?

Regroupez les erreurs par heure et par nœud ; la tendance est généralement évidente. Si cela n’arrive qu’en production, c’est généralement une différence d’environnement, pas le modèle. Ce modèle est servi par Z.AI, l’état en amont dépend donc des annonces du fournisseur. Reproduisez d’abord le cas en préproduction avec le même corps de requête.

Quels codes valent la peine d’être réessayés, et lesquels jamais ?

Il n’est généralement pas nécessaire de modifier le code, seulement le rythme des appels. Réessayer est la première étape la plus efficace. Avec la facturation p * 1 + cr * 0.2 + cc * 0 + c * 3.2, les requêtes échouées ne sont pas comptées dans l’usage. Fixez la limite de relances à 3–5 et ajoutez du jitter. Utilisez un backoff exponentiel pour les erreurs relançables et renvoyez l’erreur immédiatement pour les autres.

Le traitement asynchrone ou par lots évite-t-il 504 ?

Ici les vraies variables sont la concurrence et les délais d’attente, pas le modèle. Baissez d’abord la concurrence : la plupart des problèmes de débit disparaissent ensuite. Ce modèle dispose d’une fenêtre de contexte de 204.8K et vient de Z.AI. Un contexte de 204.8K signifie que les longues entrées allongent nettement la latence du premier token. Partez d’une concurrence faible, observez quelques minutes, puis montez. Lissez les pics avec du traitement par lots ou une file : plus stable que d’augmenter la concurrence à la volée.

Quand glm-5 renvoie 504, la passerelle ou l’upstream est-il plus probable ?

Cette erreur ne dépend pas de la capacité du modèle, elle est au niveau de la passerelle. Les balises de capacité de ce modèle sont Reasoning, Tools, Open Weights. Si l’erreur persiste plusieurs minutes, contactez le support de la plateforme pour confirmer l’état en amont. Déterminez d’abord si c’est au niveau du compte ou du modèle ; les deux demandent un traitement totalement différent.

Autres erreurs sur ce modèle

Autres modèles avec la même erreur

Données mises à jour: 2026-10-10 15:40

Support techniqueAssistance en ligne
Haut de page