Endpointy
Routing dostawców i modele zapasowe
Wybieraj, szereguj i filtruj dostawców modeli oraz ustaw zapasowe modele, aby żądania przechodziły na inny model, gdy pierwszy zawiedzie.
Wypróbuj w playgroundWiele modeli jest obsługiwanych przez kilku dostawców, a każdy ma własną cenę, szybkość i politykę danych. Domyślnie żądania są równoważone między dostawcami według ceny i dostępności, a gdy jeden zawiedzie, przechodzą do innego. Obiekt provider pozwala to zmienić, a models umożliwia przełączanie między różnymi modelami.
Obiekt provider
| Pole | Typ | Opis |
|---|---|---|
order | string[] | Dostawcy do wypróbowania w pierwszej kolejności, np. ["Anthropic", "Amazon Bedrock"]. |
allow_fallbacks | boolean | false nie pozwala kierować żądania do dostawców spoza order lub only (domyślnie true). |
only | string[] | Dopuszcza wyłącznie tych dostawców. |
ignore | string[] | Nigdy nie używa tych dostawców. |
sort | string | "price", "throughput" lub "latency" zamiast równoważenia obciążenia. |
data_collection | string | "deny" wyklucza dostawców, którzy mogą przechowywać prompty lub trenować na nich modele. "allow" jest wartością domyślną. |
require_parameters | boolean | Używa tylko dostawców obsługujących każdy parametr żądania (np. tools, response_format). |
quantizations | string[] | Dozwolone precyzje, np. ["fp8", "bf16"]. |
max_price | object | Górne limity cen w USD za milion tokenów, np. { "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"
}
}
Wariant :nitro jest skrótem dla sort: "throughput", a :floor skrótem dla sort: "price". Zobacz Identyfikatory modeli.
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);
Zapasowe modele z models
Przekaż listę modeli. Jeśli pierwszy zawiedzie (awaria, limit zapytań, moderacja lub błąd długości kontekstu), zostanie wypróbowany następny:
{
"models": ["anthropic/claude-sonnet-4.5", "openai/gpt-5-mini", "google/gemini-2.5-flash"],
"messages": [{ "role": "user", "content": "Summarize this ticket." }]
}
modeljest opcjonalne, gdy ustawionomodels. Jeśli wyślesz oba,modeljest wypróbowywany jako pierwszy.- Każdy model z listy musi przejść kontrole bramki przed wysłaniem żądania: musi istnieć i być włączony, znajdować się na liście dozwolonych modeli Twojego klucza oraz być objęty Twoim planem. Jeden model, który nie przejdzie kontroli, odrzuca całe żądanie (
403 model_not_allowed,403 plan_requiredlub404 model_not_found). - Płacisz tylko za model, który odpowiedział, według jego własnej ceny. Pole
modelw odpowiedzi informuje, który to był.
Odpowiedź
{
"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 pokazuje, który dostawca obsłużył żądanie. Wyszukiwanie generacji pokazuje pełne szczegóły routingu.
Błędy
Jeśli żaden dostawca nie pasuje do Twoich filtrów (np. only razem z require_parameters), dostawca zwraca 404 "No endpoints found". Pozostałe błędy są takie same jak w Chat completions. Zobacz Błędy.