Error 401: qué hacer cuando falla gemini-3.1-flash-lite

Un 401 significa que la autenticación falló: la solicitud no lleva API Key, o la clave no es válida, ha sido eliminada o ha caducado.

401 Unauthorized significa que la solicitud no lleva credenciales válidas. El gateway no pudo identificar al llamante, así que la petición nunca llega al modelo upstream. Revisar la cabecera Authorization y el estado de la key es el único camino.

gemini-3.1-flash-lite lo ofrece Google. Todo en esta página — causas, soluciones y datos medidos — se recopila del comportamiento real de este modelo en la capa de gateway.

En esta pasarela, el desencadenante más común es: Falta la cabecera Authorization. La primera acción recomendada es: Envía la cabecera como Authorization: Bearer seguida de tu clave.

Causas habituales

  • Falta la cabecera Authorization
  • La clave está mal escrita o tiene espacios sobrantes
  • La clave se eliminó o desactivó en la página Tokens
  • Se usó por error una clave de otra plataforma

Cómo solucionarlo

  • Envía la cabecera como Authorization: Bearer seguida de tu clave
  • Genera una clave nueva en la página Tokens
  • Comprueba que no uses una clave de otro servicio
  • Verifica la clave con una solicitud curl mínima

Reintento con retroceso exponencial

El siguiente código reintenta cuando gemini-3.1-flash-lite devuelve 401: hasta 5 intentos, con espera creciente y jitter aleatorio para que las llamadas concurrentes no reintenten a la vez. Lee la URL base y la API key de variables de entorno, nunca las escribas fijas.

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 = 'gemini-3.1-flash-lite'


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

Datos clave de este modelo

Endpoint de APIhttps://api.airai.cc/v1
Compatible con OpenAIOpenAI-compatible
ProveedorGoogle
Contexto1M
CapacidadesReasoning, Tools, Files, Vision, Audio
Formatos de APIopenai, openai-response, openai-response-compact, anthropic, gemini, openai-alpha-search
Fórmula de facturaciónp * 0.25 + cr * 0.025 + ai * 0.5 + c * 1.5

Preguntas frecuentes

¿Un contexto largo hace más probable 401?

Es un problema de configuración del cliente; el servidor no necesita cambios. La ventana de contexto 1M fija la entrada máxima por petición; lo que la supere se rechaza directamente. Para errores de parámetros, falla rápido en lugar de gastar reintentos. Trunca o resume las entradas largas: reduce 401 de forma notable.

¿Las solicitudes concurrentes deben ir en cola o limitarse directamente?

Aquí las variables reales son la concurrencia y los timeouts, no el modelo. Baja primero la concurrencia: la mayoría de los problemas de rendimiento desaparecen. Este modelo tiene una ventana de contexto de 1M y es de Google. Un contexto de 1M implica que las entradas largas aumentan la latencia del primer token. Para salidas largas, sube el timeout a 60 segundos o más. Añade una capa de caché para que las peticiones repetidas no lleguen todas al modelo.

¿Se me cobrará cuando gemini-3.1-flash-lite devuelva 401?

No se cobra: solo cuenta para el consumo la salida realmente generada. Solo se cobra la salida ya generada; la parte fallida no. Con la tarificación p * 0.25 + cr * 0.025 + ai * 0.5 + c * 1.5, las peticiones fallidas no cuentan en el uso. Revisa primero el saldo y los límites de velocidad en la consola, luego el código. Al estimar el coste con p * 0.25 + cr * 0.025 + ai * 0.5 + c * 1.5, incluye también el presupuesto de reintentos.

¿Necesito mejorar mi plan para arreglar 401 en gemini-3.1-flash-lite?

Tanto subir el límite del plan como bajar la frecuencia de llamadas ayuda. Con facturación p * 0.25 + cr * 0.025 + ai * 0.5 + c * 1.5, el coste de salidas largas viene sobre todo de los tokens de salida. Con la tarificación p * 0.25 + cr * 0.025 + ai * 0.5 + c * 1.5, las peticiones fallidas no cuentan en el uso. Revisa primero el saldo y los límites de velocidad en la consola, luego el código. Al estimar el coste con p * 0.25 + cr * 0.025 + ai * 0.5 + c * 1.5, incluye también el presupuesto de reintentos.

Otros errores de este modelo

Otros modelos con el mismo error

Datos actualizados: 2026-10-11 15:15

Soporte técnicoSoporte en línea
Volver arriba