HappyHorse 1.0 ya disponibleProbar ahora
Model Not Found en APIs compatibles con OpenAI: causas, soluciones y checklist de depuración
guide

Model Not Found en APIs compatibles con OpenAI: causas, soluciones y checklist de depuración

EvoLink Team
EvoLink Team
Product Team
13 de mayo de 2026
10 min de lectura

Cambiaste tu base URL a un proveedor compatible con OpenAI, enviaste una solicitud y recibiste esto:

{
  "error": {
    "message": "The model `gpt-4o` does not exist or you do not have access to it.",
    "type": "invalid_request_error",
    "code": "model_not_found"
  }
}

Este es uno de los errores más comunes al cambiar entre proveedores de API compatibles con OpenAI. El formato de la solicitud es compatible, pero el model ID no lo es.

"Compatible con OpenAI" significa que el formato de solicitud funciona. No significa que cada model ID sea igual en todos los proveedores.

Resumen rápido

  • "Model not found" generalmente significa que el model ID que enviaste no coincide con lo que el proveedor espera.
  • Compatible con OpenAI ≠ mismos model IDs. Cada proveedor tiene su propia nomenclatura.
  • Verifica siempre: (1) base URL, (2) model ID, (3) alcance del API key, (4) disponibilidad del modelo.
  • Usa la matriz de depuración a continuación para aislar la causa en menos de 5 minutos.

Por qué ocurre este error

"Compatible con OpenAI" se ha convertido en una convención de la industria. Muchos proveedores (OpenRouter, EvoLink, LiteLLM, Portkey, Together AI, Fireworks, etc.) aceptan el mismo formato de solicitud POST /v1/chat/completions que usa OpenAI.

Pero la compatibilidad termina en el formato de solicitud. Los model IDs son específicos de cada proveedor:

ProveedorEjemplo de model ID para GPT-4oEjemplo de model ID para Claude Sonnet
OpenAIgpt-4oN/A (no disponible)
OpenRouteropenai/gpt-4oanthropic/claude-sonnet-4-20250514
EvoLinkgpt-4o o openai/gpt-4oclaude-sonnet-4-20250514
Together AIN/A (no todos los modelos)N/A
LiteLLMopenai/gpt-4oanthropic/claude-sonnet-4-20250514
Cuando cambias la base_url pero mantienes el mismo model ID, el nuevo proveedor no lo reconoce y devuelve "model not found".

Matriz de depuración: aislar la causa en 5 minutos

Recorre esta checklist en orden. Detente cuando encuentres el desajuste.

VerificaciónQué comprobarCómo comprobarloError común
1. Base URL¿La base URL apunta al proveedor correcto?Imprime o registra la base_url antes de la solicitudOlvidaste cambiar la base URL o usas una variable de entorno desactualizada
2. Formato del model ID¿El model ID coincide con la nomenclatura del proveedor?Consulta la lista de modelos o la documentación del proveedorUsas gpt-4o cuando el proveedor espera openai/gpt-4o (o viceversa)
3. Disponibilidad del modelo¿El modelo está realmente disponible en este proveedor?Consulta la página del catálogo de modelos del proveedorAsumir que todos los proveedores tienen todos los modelos
4. Alcance del API key¿Tu API key tiene acceso a este modelo?Prueba un modelo que sepas que funciona con la misma keyLa key es válida pero está restringida a ciertos modelos o niveles
5. Deprecación del modelo¿El model ID sigue activo?Consulta el changelog o anuncios del proveedorEl modelo fue renombrado, versionado o descontinuado
6. Errores tipográficos o mayúsculas¿El model ID está escrito exactamente bien?Compara carácter por caráctergpt-4o vs. gpt4o vs. GPT-4o
7. Región o plan¿Tu cuenta/región tiene acceso?Consulta la documentación del proveedor sobre disponibilidad regionalModelo disponible en EE.UU. pero no en tu región

Los desajustes más comunes

Desajuste 1: Olvidaste cambiar el model ID después de cambiar la base URL

Esta es la causa más frecuente. Estás migrando de OpenAI a otro proveedor:

# Antes: OpenAI directo
client = OpenAI(api_key="sk-...")

# Después: cambio a otro proveedor pero manteniendo el mismo model ID
client = OpenAI(
    api_key="your-provider-key",
    base_url="https://api.another-provider.com/v1"  # Cambiado
)

response = client.chat.completions.create(
    model="gpt-4o",  # ← Este model ID puede no funcionar en el nuevo proveedor
    messages=[{"role": "user", "content": "Hello"}]
)
Solución: Consulta la lista de modelos del proveedor y usa su formato de model ID.

Desajuste 2: El proveedor usa model IDs con espacio de nombres

Algunos proveedores prefijan los model IDs con el nombre del fabricante original:

# OpenAI directo
model = "gpt-4o"

# OpenRouter
model = "openai/gpt-4o"

# Algunos proveedores usan sus propios alias
model = "gpt-4o-2024-08-06"
Solución: Siempre consulta la documentación del proveedor para conocer la cadena exacta del model ID.

Desajuste 3: Modelo no disponible en este proveedor

No todos los proveedores compatibles con OpenAI soportan todos los modelos:

  • Un proveedor puede soportar Claude pero no modelos GPT
  • Un proveedor puede soportar modelos de texto pero no de imagen o video
  • Un modelo recién lanzado puede no estar disponible en todas partes desde el primer día
Solución: Consulta el catálogo de modelos del proveedor antes de hacer el cambio.

Desajuste 4: Modelo descontinuado o renombrado

Los modelos de IA se actualizan con frecuencia. Un model ID que funcionaba el mes pasado puede estar descontinuado:

gpt-4-turbo → puede redirigir o fallar según el proveedor
claude-3-opus-20240229 → versión anterior, puede haber sido reemplazada
Solución: Consulta el changelog del proveedor y usa el model ID actual.

Cómo verificar el model ID correcto

Opción A: Consultar el endpoint de modelos

La mayoría de los proveedores compatibles con OpenAI exponen un endpoint GET /v1/models:
curl https://api.your-provider.com/v1/models \
  -H "Authorization: Bearer YOUR_API_KEY"

Esto devuelve la lista de modelos disponibles para tu cuenta. Busca tu modelo objetivo en la respuesta.

Opción B: Consultar la documentación del proveedor

Todo proveedor serio tiene una página con la lista de modelos. Antes de cambiar, verifica:

  1. La cadena exacta del model ID
  2. Si requiere un prefijo de espacio de nombres
  3. Si está disponible en tu plan/nivel
  4. Si está disponible en tu región

Opción C: Enviar una solicitud de prueba mínima

curl https://api.your-provider.com/v1/chat/completions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "your-model-id",
    "messages": [{"role": "user", "content": "test"}],
    "max_tokens": 5
  }'

Si devuelve una respuesta válida, tu model ID es correcto. Si devuelve "model not found", prueba con el model ID recomendado por el proveedor.

Construir una selección de modelos resiliente

En sistemas de producción, los desajustes de model ID no deberían causar fallos graves. Estos patrones ayudan:

Patrón 1: Capa de mapeo de model IDs

Mantén un mapeo entre tus nombres internos de modelo y los IDs específicos de cada proveedor:

MODEL_MAP = {
    "fast-chat": {
        "openai": "gpt-4o-mini",
        "openrouter": "openai/gpt-4o-mini",
        "evolink": "gpt-4o-mini",
    },
    "strong-chat": {
        "openai": "gpt-4o",
        "openrouter": "openai/gpt-4o",
        "evolink": "gpt-4o",
    },
    "reasoning": {
        "openai": "o3",
        "openrouter": "openai/o3",
        "evolink": "o3",
    }
}

def get_model_id(capability: str, provider: str) -> str:
    return MODEL_MAP[capability][provider]

Patrón 2: Usar una API unificada que normaliza los model IDs

En lugar de mantener tu propia capa de mapeo, puedes usar un gateway que acepta model IDs estandarizados y gestiona el enrutamiento a proveedores internamente.

Con EvoLink, puedes usar model IDs familiares sin preocuparte por la nomenclatura específica de cada proveedor:

from openai import OpenAI

client = OpenAI(
    api_key="your-evolink-key",
    base_url="https://api.evolink.ai/v1"
)

# Usa model IDs estándar — EvoLink gestiona el mapeo
response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Hello"}]
)

O deja que el Smart Router elija el mejor modelo para tu carga de trabajo:

response = client.chat.completions.create(
    model="evolink/auto",
    messages=[{"role": "user", "content": "Hello"}]
)
Esto elimina por completo el problema de mapeo de model IDs para los modelos soportados. Consulta el catálogo de modelos de EvoLink para ver los modelos disponibles.

Patrón 3: Validar los model IDs al iniciar

No esperes a una solicitud de usuario para descubrir que un model ID es incorrecto:

async def validate_models_on_startup(client, required_models: list[str]):
    """Llama a /v1/models al iniciar y verifica que todos los modelos requeridos existan."""
    available = await client.models.list()
    available_ids = {m.id for m in available.data}

    for model in required_models:
        if model not in available_ids:
            raise RuntimeError(
                f"Model '{model}' not found on provider. "
                f"Available: {sorted(available_ids)}"
            )

Referencia rápida: compatible con OpenAI no significa idéntico

Qué es compatibleQué NO está garantizado que sea igual
Formato de solicitud (/v1/chat/completions)Model IDs
Estructura de respuestaModelos disponibles
Patrón de autenticación (token Bearer)Límites de tasa y cuotas
Formato de streaming (SSE)Códigos y mensajes de error
Parámetros básicos (messages, temperature)Parámetros avanzados y extensiones

Esta distinción es la causa raíz de la mayoría de los errores "model not found" al cambiar de proveedor.

Artículos relacionados

Browse EvoLink Model Catalog

FAQ

¿Por qué "gpt-4o" funciona en OpenAI pero no en mi nuevo proveedor?

Porque "compatible con OpenAI" se refiere al formato de solicitud, no al catálogo de modelos. Cada proveedor tiene sus propios model IDs. Algunos aceptan gpt-4o directamente, otros requieren un prefijo como openai/gpt-4o, y algunos puede que no ofrezcan ese modelo en absoluto.

¿Cómo encuentro el model ID correcto para mi proveedor?

Consulta la página de lista de modelos del proveedor o llama a su endpoint GET /v1/models. El model ID debe coincidir exactamente, incluyendo mayúsculas/minúsculas, sufijos de versión y cualquier prefijo de espacio de nombres.

¿Puedo usar el mismo model ID en todos los proveedores compatibles con OpenAI?

No de forma fiable. Aunque algunos proveedores aceptan los mismos IDs que OpenAI, muchos usan convenciones de nomenclatura diferentes. Mantén una capa de mapeo o usa un gateway como EvoLink que normaliza los model IDs por ti.

¿Qué pasa si el model ID funcionaba ayer pero dejó de funcionar hoy?

El modelo puede haber sido descontinuado, renombrado o eliminado de tu nivel. Consulta el changelog y los anuncios del proveedor. El ciclo de vida de los modelos en IA es más rápido que en las APIs tradicionales.

¿"Model not found" siempre es un problema de model ID?

Generalmente sí, pero no siempre. También puede significar: (1) tu API key no tiene acceso a ese modelo, (2) el modelo no está disponible en tu región, o (3) el modelo requiere un nivel de suscripción superior.

¿Cómo prevengo errores de model not found en producción?

Tres estrategias: (1) validar los model IDs al iniciar la aplicación, (2) mantener una capa de mapeo de model IDs o usar un gateway normalizador, (3) implementar lógica de fallback que intente un modelo alternativo si el principal devuelve "not found".

¿Listo para reducir tus costos de IA en un 89%?

Comienza a usar EvoLink hoy y experimenta el poder del enrutamiento inteligente de API.