Endpoint
Instradamento dei provider e fallback
Scegli, ordina e filtra i provider upstream con l'oggetto provider e usa models per il fallback tra modelli diversi quando una richiesta fallisce.
Provalo nel playgroundMolti modelli sono serviti da più provider upstream, ciascuno con il proprio prezzo, la propria velocità e la propria politica sui dati. Per impostazione predefinita le richieste sono distribuite tra i provider in base a prezzo e uptime, e passano a un altro provider quando uno fallisce. Usa l'oggetto provider per cambiare questo comportamento e models per il fallback tra modelli diversi.
L'oggetto provider
| Campo | Tipo | Descrizione |
|---|---|---|
order | string[] | Provider da provare per primi, in ordine, ad es. ["Anthropic", "Amazon Bedrock"]. |
allow_fallbacks | boolean | false impedisce alla richiesta di andare verso provider esterni a order o only (predefinito true). |
only | string[] | Consente solo questi provider. |
ignore | string[] | Non usare mai questi provider. |
sort | string | "price", "throughput" o "latency" al posto del bilanciamento del carico. |
data_collection | string | "deny" esclude i provider che potrebbero memorizzare i prompt o addestrarsi su di essi. "allow" è il valore predefinito. |
require_parameters | boolean | Usa solo provider che supportano ogni parametro della tua richiesta (ad es. tools, response_format). |
quantizations | string[] | Precisioni consentite, ad es. ["fp8", "bf16"]. |
max_price | object | Limiti massimi di prezzo in USD per milione di token, ad es. { "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 è una scorciatoia per sort: "throughput" e :floor è una scorciatoia per sort: "price". Vedi Id dei modelli.
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);
Fallback tra modelli con models
Passa un elenco di modelli. Se il primo fallisce (un'interruzione, un limite di frequenza, la moderazione o un errore di lunghezza del contesto), viene provato il successivo:
{
"models": ["anthropic/claude-sonnet-4.5", "openai/gpt-5-mini", "google/gemini-2.5-flash"],
"messages": [{ "role": "user", "content": "Summarize this ticket." }]
}
modelè facoltativo quandomodelsè impostato. Se invii entrambi,modelviene provato per primo.- Ogni modello dell'elenco deve superare i controlli del gateway prima dell'invio della richiesta: deve esistere ed essere attivo, trovarsi nella lista dei modelli consentiti della tua chiave ed essere incluso nel tuo piano. Un solo modello che non supera i controlli fa rifiutare l'intera richiesta (
403 model_not_allowed,403 plan_requiredo404 model_not_found). - Ti viene fatturato solo il modello che ha risposto, al suo prezzo. Il campo
modeldella risposta indica quale è stato.
Risposta
{
"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 quale provider upstream ha servito la richiesta. La Ricerca di una generazione mostra i dettagli completi dell'instradamento.
Errori
Se nessun provider corrisponde ai tuoi filtri (ad es. only insieme a require_parameters), l'upstream restituisce 404 "No endpoints found". Gli altri errori sono gli stessi di Chat completions. Vedi Errori.