Skip to main content
En lugar de un solo modelo, pasa una lista ordenada de candidatos. Si el primero falla por causa del proveedor, Geek Hub reintenta automáticamente con el siguiente, sin devolver error al cliente. La respuesta indica qué modelo finalmente respondió y el costo se calcula contra ese.

Sintaxis

model acepta string (1 modelo) o array (1 a 8 candidatos ordenados):

Cuándo se activa el fallback

Skip por pre-flight

Si un candidato no soporta una capability requerida (zdr: true, response_format) o está bloqueado por la config ZDR del org, se salta en vez de fallar. Aparece en skipped con el motivo:
  • zdr_not_verified — sin política ZDR verificada
  • zdr_org_required — org exige ZDR y el candidato no está verificado
  • structured_outputs_not_supported — sin soporte structured outputs
  • model_not_found, no_adapter — catálogo o configuración

Respuesta exitosa

Si fallan todos

Costos

El cobro se hace contra geekhub.final_model. Los intentos fallidos no generan cargo de tokens al usuario pero quedan en /dashboard/usage con statusCode ≠ 200.

Streaming

Con stream: true el fallback solo funciona si la falla ocurre antes del primer chunk. Una vez que tu cliente recibe tokens, no es posible cambiar de modelo; el error sale como evento SSE y se aborta.

Auto routing por costo o latencia

En vez de decidir tú el orden, deja que el gateway ordene los candidatos según una estrategia:
Estrategias:
  • cheapest — ordena por precio input+output ascendente. Predecible, no requiere histórico.
  • fastest — usa el p50 de latency de la última hora (mínimo 10 requests). Si no hay data suficiente, cae a cheapest.
  • balanced — 60% precio + 40% latency normalizados 0-1.
El array resultante se recorre como si hubieras mandado model como array. La respuesta incluye qué orden aplicó: