Introduzione
GLM 5.2 è il modello di chat a contesto lungo di Z.ai, disponibile qui come un endpoint compatibile con OpenAI su /v1/chat/completions. Legge fino a 1.048.576 token in al massimo 256 messaggi e risponde con fino a 131.072: entra un intero corpus, esce un risultato.
Il livello di ragionamento ha due impostazioni, high e max, con max di default. temperature (da 0 a 1) e top_p sono accettati, response_format restituisce JSON, puoi dichiarare fino a 128 tool per richiesta, il contenuto dei messaggi è solo testo e le risposte arrivano in streaming via Server-Sent Events.
Caratteristiche principali
Otto token letti per ognuno scritto
1.048.576 in ingresso e 131.072 in uscita fanno circa otto a uno, e questa forma dice a cosa serve il modello: leggere un trimestre di ticket, un regolamento intero o un'intera casella di posta e restituire un risultato, non una riscrittura. Se la risposta deve essere lunga quanto l'input, dividi prima il lavoro.
max di default, high per i volumi
reasoning_effort parte da max e scende a high per i grandi primi passaggi. Entrambi stanno nello stesso corpo della richiesta, così una passata economica su diecimila documenti e un secondo sguardo attento a quaranta di essi sono una sola integrazione. max spende più budget di risposta nel ragionamento, ed è per questo che qui max_tokens parte da 32.768.
JSON e tool nella stessa chiamata
Imposta response_format su json_object e nomina le chiavi nel messaggio di sistema, oppure dichiara fino a 128 funzioni e lascia a tool_choice la scelta di quando eseguirle. In entrambi i casi la tua applicazione valida il risultato prima di agire.
Parametri della richiesta
| Parametro | Obbligatorio | Nota |
|---|---|---|
messages | Sì | Al massimo 256 battute in ordine, contenuto solo testuale. Metti il corpus in un unico messaggio utente e la domanda più il formato dell’output nel messaggio di sistema. almeno 1 elementi · al massimo 256 elementi |
reasoning_effort | No | high o max. Il predefinito è max, come nell’API di Z.ai, quindi una richiesta che omette il campo ottiene già l’impostazione più accurata; per le passate di massa scendi a high. |
stop | No | Una sola sequenza, come stringa o come array di un elemento: Z.ai ne legge solo una. almeno 1 caratteri · almeno 1 elementi · al massimo 1 elementi |
max_tokens | No | Limita la risposta a 131.072, un ottavo della finestra di lettura. Predefinito 32.768. |
temperature | No | Da 0 a 1, predefinito 1. Tienilo a 0 ogni volta che la risposta viene interpretata da codice. |
top_p | No | Da 0,01 a 1, predefinito 0,95. Regola questo oppure temperature, mai entrambi nello stesso confronto. |
tools | No | Fino a 128 definizioni di funzione per richiesta. al massimo 128 elementi |
tool_choice | No | auto, none, required oppure un oggetto che nomina una singola funzione. |
response_format | No | Chiedi un oggetto JSON e nomina ogni chiave nel messaggio di sistema. |
Prezzi
Input $0.98 / Output $3.08 per 1 milione di token
Casi d’uso
Un trimestre di ticket di supporto in una chiamata
Carica in una richiesta tutti i ticket di una finestra di rilascio e chiedi quali modalità di guasto si ripetono, con gli ID dei ticket come prova. Niente va perso in un campionamento, così emerge anche uno schema che compare una volta a settimana.
Normativa e comportamento reale del prodotto
Metti il testo completo di un regolamento accanto alla tua documentazione sul trattamento dei dati e chiedi gli obblighi, i controlli che li soddisfano e le lacune, ognuna legata alla clausola da cui nasce.
Backend che chiamano i tuoi strumenti interni
Dichiara ricerca ordini, rimborso e verifica dei diritti come tool in una richiesta e lascia che il modello scelga quale chiamare. I risultati tornano come messaggi con ruolo tool, così una risoluzione in più passi resta in una sola conversazione.
Consigli avanzati
Carica tutto il corpus, non un campione
La finestra di solito è più grande dell'indice di retrieval che qualcuno stava per costruire. Metti il materiale in un messaggio utente, dal più vecchio, e riserva il messaggio di sistema alla domanda e al formato di output.
Chiedi un risultato, non una trascrizione
POST https://api.spicyapi.ai/v1/chat/completions con {"model": "zai/glm-5.2", "messages": [{"role": "system", "content": "Return one JSON object with keys: obligations, controls, gaps. Every gap must cite the clause it comes from."}, {"role": "user", "content": "<the regulation>\n\n<our data-handling policy>"}], "reasoning_effort": "high", "max_tokens": 16000, "response_format": {"type": "json_object"}, "temperature": 0}. temperature 0 mantiene confrontabili le esecuzioni ripetute quando ricontrolli lo stesso corpus.
Porta in alto solo le righe ambigue
Rimanda su max, con lo stesso corpus, la manciata di lacune che il primo passaggio ha segnato come incerte. Paghi due volte la lettura lunga, ma la risposta accurata cade sulle righe che contano. Un max_tokens oltre 131.072 non supera la validazione, e le parti immagine e file vengono rifiutate.
Avvio rapido dell’API
curl --fail-with-body -sN https://api.spicyapi.ai/v1/chat/completions \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"model": "zai/glm-5.2/chat",
"messages": [
{
"role": "user",
"content": "Summarise the following release notes into three bullet points."
}
],
"stream": true
}' \
| jq --unbuffered -Rrj 'select(startswith("data: ")) | .[6:] | select(. != "[DONE]") | fromjson | if .error then "\n[error] \(.error.message)\n" else (.choices[0].delta.content? // empty) end'
Nel riferimento dell’API trovi autenticazione, schema completo, polling e gestione degli errori.







