Saltar al contenido principal

Documentation Index

Fetch the complete documentation index at: https://apidoc.cometapi.com/llms.txt

Use this file to discover all available pages before exploring further.

Gestiona los errores de CometAPI decidiendo si la solicitud debe corregirse o reintentarse. Reintenta 429, fallos de la clase timeout y fallos temporales del servidor con backoff; no reintentes solicitudes malformadas ni fallos de autenticación.

Reintenta solo los fallos que se pueden reintentar

Status o señal¿Reintentar?Acción
400NoCorrige el cuerpo de la solicitud o los parámetros.
401NoCorrige la API key y el encabezado Authorization.
403Normalmente noElimina los campos no compatibles y verifica el acceso al modelo.
429Reintenta con backoff exponencial y jitter.
500 with invalid_requestNoCorrige la forma de la solicitud.
500, 503, 504, 524Reintenta con backoff y conserva el ID de la solicitud.

Agrega backoff

El siguiente ejemplo en Python reintenta solo los fallos que se pueden reintentar:
import os
import random
import time
from openai import APIError, OpenAI, RateLimitError

client = OpenAI(
    api_key=os.environ["COMETAPI_KEY"],
    base_url="https://api.cometapi.com/v1",
)

for attempt in range(5):
    try:
        response = client.chat.completions.create(
            model="your-model-id",
            messages=[{"role": "user", "content": "Say hello."}],
        )
        print(response.choices[0].message.content)
        break
    except RateLimitError:
        delay = min(30, 2**attempt) + random.random()
        time.sleep(delay)
    except APIError as error:
        status_code = getattr(error, "status_code", None)
        if status_code in {500, 503, 504, 524}:
            delay = min(30, 2**attempt) + random.random()
            time.sleep(delay)
            continue
        raise
else:
    raise RuntimeError("The request failed after retries.")
La respuesta correcta incluye la salida del modelo:
{
  "choices": [
    {
      "message": {
        "role": "assistant",
        "content": "Hello."
      }
    }
  ],
  "usage": {
    "total_tokens": 9
  }
}

Registra contexto útil

La siguiente estructura JSON es segura para almacenar después de eliminar los secretos del usuario y los archivos grandes:
{
  "method": "POST",
  "path": "/v1/chat/completions",
  "model": "your-model-id",
  "status": 429,
  "request_id": "request_id_from_error_message",
  "retryable": true
}

Errores comunes

ProblemaSolución
Reintentar 401Detén los reintentos y rota o vuelve a cargar la API key.
Reintentar JSON no válidoValida el cuerpo de la solicitud antes de enviar otra solicitud.
No hay ID de solicitud en los logsCaptura el cuerpo exacto del error antes de que tu SDK lo envuelva.
Reintento inmediato después de 429Agrega jitter y reduce la concurrencia.

Enlaces relacionados

Last modified on May 28, 2026