POST /v1/chat/completions
Completamenti chat compatibili con OpenAI con streaming, strumenti, visione e alias di modello.
POST /v1/chat/completions
Richiesta
curl https://api.model-gate.com/v1/chat/completions \
-H "Authorization: Bearer mg_live_..." \
-H "Content-Type: application/json" \
-d '{
"model": "ch-47",
"messages": [
{"role": "user", "content": "Explain this API in one sentence."}
],
"stream": false
}'
IL model può essere un ID canonico o un alias abilitato. Model Gate risolve gli alias prima della determinazione del prezzo e invia l'ID canonico a monte.
Risposta
{
"id": "chatcmpl_example",
"object": "chat.completion",
"model": "claude-opus-4.7",
"choices": [
{
"index": 0,
"message": {"role": "assistant", "content": "Model Gate provides one compatible API for multiple AI models."},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 14,
"completion_tokens": 17,
"total_tokens": 31
}
}
Richiesta di streaming
Impostato "stream": true. Gli eventi inviati dal server upstream vengono passati senza riscrivere i payload degli eventi riusciti.
Richiesta asincrona
Per gli endpoint supportati, aggiungi "async": true con "stream": false. La risposta immediata è HTTP 202 e contiene request_id e un URL di risultato Partner API.
Errori
Lo stato, il corpo e il tipo di contenuto del provider non 2xx vengono trasmessi invariati. Gli errori di convalida generati localmente utilizzano la busta di errore Model Gate.
| Stato | Senso | Azione |
|---|---|---|
400 | Richiesta non valida | Controllare il corpo della richiesta e l'ID del modello. |
401 | Chiave non valida o bloccata | Verifica o ruota la chiave API. |
429 | Limite di velocità o concorrenza superato | Rispetto Retry-After e riprovare con il backoff. |
5xx | Errore temporaneo upstream o gateway | Riprovare le richieste idempotenti con backoff esponenziale. |