Completamenti di chat
Generazione di risposte in chat compatibile con OpenAI, con streaming, immagini, chiamate agli strumenti e controllo del ragionamento.
POST /v1/chat/completions
curl https://api.unquant.io/v1/chat/completions \
-H "Authorization: Bearer $UNQUANT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"glm-5.3-flash",
"messages":[{"role":"user","content":"Hello!"}]}'Campi della richiesta
modelstringaObbligatorioglm-5.3-flash o qwen-3.8-flash-next.
messagesarrayObbligatorioRuoli system, user, assistant e tool. Il contenuto è una stringa o un array di elementi text e image_url.
streambooleanoTrasmette la risposta in streaming tramite eventi inviati dal server.
stream_optionsoggetto{"include_usage": true} aggiunge un blocco finale con il conteggio dei token.
max_tokensinteroLimite massimo della lunghezza della risposta.
max_completion_tokensinteroEquivalente a max_tokens.
temperaturenumeroGrado di casualità del campionamento.
top_pnumeroCampionamento a nucleo.
top_kinteroCampiona tra i k token più probabili.
min_pnumeroProbabilità relativa minima per un token.
seedinteroValore iniziale per un campionamento riproducibile.
stopstringa o arraySequenze di arresto.
frequency_penaltynumeroPenalizza i token in base alla frequenza con cui sono già comparsi.
presence_penaltynumeroPenalizza i token già comparsi almeno una volta.
repetition_penaltynumeroPenalità moltiplicativa per le ripetizioni.
toolsarrayFunzioni che il modello può chiamare, nel formato OpenAI.
tool_choicestringa o oggettoauto, none, required o una funzione specificata per nome.
parallel_tool_callsbooleanoConsente più chiamate agli strumenti in un unico turno.
response_formatoggettoRisultato in formato JSON.
logprobsbooleanoRestituisce le probabilità logaritmiche dei token.
top_logprobsinteroNumero di alternative da restituire per ciascun token.
ninteroDeve essere 1: una sola risposta generata per richiesta.
reasoning_effortstringaEntrambi i modelli: none, low o high; GLM-5.3-Flash accetta anche max.
chat_template_kwargsoggettoOpzioni del modello di formattazione della chat, come {"enable_thinking": false}.
Gli altri campi vengono ignorati.
Risposta
response.choices[0].message.contentI conteggi di utilizzo vengono restituiti per il tuo monitoraggio e non comportano mai addebiti.
Streaming
Con "stream": true la risposta arriva tramite eventi inviati dal server nel formato a blocchi di OpenAI e termina con data: [DONE]. Leggi il testo da choices[0].delta.content.
Immagini
Entrambi i modelli accettano immagini come elementi image_url contenenti un URL di dati in base64 (data:image/png;base64,..., JPEG o WebP). Le immagini indicate tramite URL remoti non vengono recuperate e causano un errore 400.
{"role": "user", "content": [
{"type": "text", "text": "Describe this image."},
{"type": "image_url", "image_url": {"url": "data:image/jpeg;base64,/9j/4AAQ..."}}
]}Chiamate agli strumenti
Passa tools come nell'API di OpenAI. Quando il modello chiama uno strumento, la risposta contiene finish_reason: "tool_calls" e message.tool_calls; esegui lo strumento, aggiungi un messaggio tool con il risultato e il relativo tool_call_id, quindi effettua una nuova chiamata.
Ragionamento
Entrambi i modelli ragionano prima di rispondere e accettano reasoning_effort: none per risposte dirette, low per un ragionamento leggero o high per problemi più complessi; GLM-5.3-Flash offre anche max e usa high come valore predefinito. Il ragionamento viene restituito separatamente in reasoning_content, senza mai essere mescolato a content. Puoi disattivarlo anche con "thinking": {"type": "disabled"} e "chat_template_kwargs": {"enable_thinking": false}.
Richieste simultanee
Il tuo piano stabilisce quante richieste possono essere eseguite contemporaneamente sull'insieme delle tue chiavi API. Una richiesta che supera questo limite restituisce subito 429 e non viene messa in coda; le richieste in corso proseguono normalmente.