Usamos cookies. Las cookies y el almacenamiento del navegador mantienen tu sesión iniciada y recuerdan tus preferencias. Con tu permiso, también medimos cómo se usa el sitio. Puedes en cualquier momento. Consulta nuestra política de cookies.

Enrutamiento de proveedores y respaldos

Endpoints

Enrutamiento de proveedores y respaldos

Elige, ordena y filtra los proveedores upstream con el objeto provider y configura modelos de respaldo con el array models.

Pruébalo en el playground

Muchos modelos son servidos por varios proveedores upstream, cada uno con su propio precio, velocidad y política de datos. Por defecto, las peticiones se reparten entre proveedores según precio y disponibilidad, y pasan a otro proveedor cuando uno falla. Usa el objeto provider para cambiar esto, y models para recurrir a modelos distintos como respaldo.

El objeto provider

CampoTipoDescripción
orderstring[]Proveedores que se prueban primero, en orden, p. ej. ["Anthropic", "Amazon Bedrock"].
allow_fallbacksbooleanfalse impide que la petición vaya a proveedores fuera de order o only (por defecto true).
onlystring[]Permite solo estos proveedores.
ignorestring[]No usar nunca estos proveedores.
sortstring"price", "throughput" o "latency" en lugar del reparto de carga.
data_collectionstring"deny" excluye a los proveedores que pueden almacenar los prompts o entrenar con ellos. "allow" es el valor por defecto.
require_parametersbooleanUsa solo proveedores que admitan todos los parámetros de tu petición (p. ej. tools, response_format).
quantizationsstring[]Precisiones permitidas, p. ej. ["fp8", "bf16"].
max_priceobjectLímites máximos de precio en USD por millón de tokens, p. ej. { "prompt": 1, "completion": 3 }.
{
  "model": "meta-llama/llama-3.3-70b-instruct",
  "messages": [{ "role": "user", "content": "Hello" }],
  "provider": {
    "order": ["Groq", "Fireworks"],
    "allow_fallbacks": true,
    "data_collection": "deny",
    "sort": "throughput"
  }
}

La variante :nitro es un atajo para sort: "throughput", y :floor es un atajo para sort: "price". Consulta Ids de modelo.

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api14.com/api/v1",
  apiKey: process.env.API14_API_KEY,
});

const result = await client.chat.completions.create({
  "model": "openai/gpt-5-mini",
  "messages": [
    {
      "role": "user",
      "content": "Explain vector databases in two sentences."
    }
  ]
});
console.log(result.choices[0].message.content);

Modelos de respaldo con models

Pasa una lista de modelos. Si el primero falla (una caída, un límite de tasa, moderación o un error de longitud de contexto), se prueba el siguiente:

{
  "models": ["anthropic/claude-sonnet-4.5", "openai/gpt-5-mini", "google/gemini-2.5-flash"],
  "messages": [{ "role": "user", "content": "Summarize this ticket." }]
}
  • model es opcional cuando se establece models. Si envías ambos, model se prueba primero.
  • Todos los modelos de la lista deben pasar las comprobaciones de la pasarela antes de enviar la petición: deben existir y estar activados, estar en la lista de modelos permitidos de tu clave e incluirse en tu plan. Un solo modelo que no pase las comprobaciones rechaza toda la petición (403 model_not_allowed, 403 plan_required o 404 model_not_found).
  • Solo se te factura el modelo que respondió, a su propio precio. El campo model de la respuesta indica cuál fue.

Respuesta

{
  "id": "gen-1760000000-route",
  "model": "openai/gpt-5-mini",
  "provider": "OpenAI",
  "choices": [{ "index": 0, "finish_reason": "stop", "message": { "role": "assistant", "content": "..." } }],
  "usage": { "prompt_tokens": 140, "completion_tokens": 60, "total_tokens": 200, "cost": 0.000155 }
}

provider indica qué proveedor upstream atendió la petición. Consulta de generaciones muestra todos los detalles del enrutamiento.

Errores

Si ningún proveedor coincide con tus filtros (p. ej. only junto con require_parameters), el upstream devuelve 404 "No endpoints found". Los demás errores son los mismos que en Chat completions. Consulta Errores.