Używamy plików cookie. Pliki cookie i pamięć przeglądarki pozwalają utrzymać logowanie i zapamiętać Twoje preferencje. Za Twoją zgodą mierzymy też, jak korzystasz ze strony. W każdej chwili możesz . Zobacz naszą politykę cookie.

Routing dostawców i modele zapasowe

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 playground

Wiele 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

PoleTypOpis
orderstring[]Dostawcy do wypróbowania w pierwszej kolejności, np. ["Anthropic", "Amazon Bedrock"].
allow_fallbacksbooleanfalse nie pozwala kierować żądania do dostawców spoza order lub only (domyślnie true).
onlystring[]Dopuszcza wyłącznie tych dostawców.
ignorestring[]Nigdy nie używa tych dostawców.
sortstring"price", "throughput" lub "latency" zamiast równoważenia obciążenia.
data_collectionstring"deny" wyklucza dostawców, którzy mogą przechowywać prompty lub trenować na nich modele. "allow" jest wartością domyślną.
require_parametersbooleanUżywa tylko dostawców obsługujących każdy parametr żądania (np. tools, response_format).
quantizationsstring[]Dozwolone precyzje, np. ["fp8", "bf16"].
max_priceobjectGó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." }]
}
  • model jest opcjonalne, gdy ustawiono models. Jeśli wyślesz oba, model jest 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_required lub 404 model_not_found).
  • Płacisz tylko za model, który odpowiedział, według jego własnej ceny. Pole model w 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.