Introducción
GLM 5.2 es el modelo de chat de contexto largo de Z.ai, disponible aquí como un endpoint compatible con OpenAI en /v1/chat/completions. Lee hasta 1.048.576 tokens en un máximo de 256 mensajes y responde con hasta 131.072: entra un corpus entero y sale un hallazgo.
El esfuerzo de razonamiento tiene dos ajustes, high y max, con max por defecto. Acepta temperature (de 0 a 1) y top_p, response_format devuelve JSON, se pueden declarar hasta 128 tools por solicitud, el contenido de los mensajes es solo texto y las respuestas llegan por Server-Sent Events.
Funciones y aspectos destacados
Ocho tokens leídos por cada uno escrito
1.048.576 de entrada y 131.072 de salida son más o menos ocho a uno, y esa forma dice para qué sirve el modelo: leer un trimestre de tickets, una norma completa o un buzón entero y devolver un hallazgo, no una reescritura. Si la respuesta tiene que ser tan larga como la entrada, divide antes el entregable.
max por defecto, high para el volumen
reasoning_effort arranca en max y baja a high en las primeras pasadas grandes. Ambos viven en el mismo cuerpo de solicitud, así que una pasada barata sobre diez mil documentos y una segunda mirada cuidadosa a cuarenta de ellos son una sola integración. max dedica más presupuesto de respuesta a razonar, por eso aquí max_tokens viene en 32.768 por defecto.
JSON y tools en la misma llamada
Pon response_format en json_object y nombra las claves en el mensaje de sistema, o declara hasta 128 funciones y deja que tool_choice decida cuándo se ejecutan. En los dos casos tu aplicación valida el resultado antes de actuar.
Parámetros de la solicitud
| Parámetro | Obligatorio | Descripción |
|---|---|---|
messages | Sí | 256 turnos ordenados como máximo, solo contenido de texto. Pon el corpus en un mensaje de user y la pregunta más el formato de salida en el mensaje system. mínimo 1 elementos · máximo 256 elementos |
reasoning_effort | No | high o max. max es el valor por defecto, como en la API de Z.ai, así que una solicitud que omite el campo ya recibe el ajuste más cuidadoso; baja a high para pasadas masivas. |
stop | No | Una secuencia, como cadena o como arreglo de un solo elemento: Z.ai solo lee una. La respuesta termina en cuanto el modelo la escribe, y el texto que coincide no se devuelve. mínimo 1 caracteres · mínimo 1 elementos · máximo 1 elementos |
max_tokens | No | Limita la respuesta a 131 072, un octavo de la ventana de lectura. Por defecto, 32 768. |
temperature | No | De 0 a 1, 1 por defecto. Déjalo en 0 siempre que la respuesta la lea código. |
top_p | No | De 0,01 a 1, 0,95 por defecto. Ajusta este o temperature, nunca los dos en la misma comparación. |
tools | No | Hasta 128 definiciones de funciones por solicitud. máximo 128 elementos |
tool_choice | No | auto, none, required, o un objeto que nombre una función. |
response_format | No | Pide un objeto JSON y nombra cada clave en el mensaje system. |
Precios
Entrada $0.98 / Salida $3.08 por 1 millón de tokens
Casos de uso
Un trimestre de tickets de soporte en una llamada
Carga todos los tickets de una ventana de lanzamiento en una solicitud y pregunta qué modos de fallo se repiten, con los ID de ticket como evidencia. Nada se pierde en un muestreo, así que hasta un patrón que aparece una vez por semana sale a la luz.
Normativa frente al comportamiento del producto
Pon el texto completo de una norma junto a tu documentación de tratamiento de datos y pide las obligaciones, los controles que las cumplen y los huecos, cada hueco atado a la cláusula de la que sale.
Backends que llaman a tus herramientas internas
Declara una consulta de pedidos, un reembolso y una verificación de derechos como tools en una solicitud y deja que el modelo decida cuál llamar. Los resultados vuelven como mensajes con rol tool, así que una resolución de varios pasos se queda en una sola conversación.
Guía de prompts y consejos prácticos
Carga el corpus entero, no una muestra
La ventana suele ser más grande que el índice de recuperación que alguien estaba por construir. Pon el material en un mensaje de usuario, del más antiguo al más reciente, y reserva el mensaje de sistema para la pregunta y el formato de salida.
Pide un hallazgo, no una transcripción
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 comparables las ejecuciones repetidas cuando vuelves a revisar el mismo corpus.
Escala solo las filas ambiguas
Reenvía en max, con el mismo corpus, el puñado de huecos que la primera pasada marcó como inciertos. Pagas dos veces la lectura larga, pero la respuesta cuidadosa cae en las filas que importan. Un max_tokens mayor que 131.072 no pasa la validación, y las partes de imagen y de archivo se rechazan.
Inicio rápido de la 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'
Consulta la referencia de la API para autenticación, el esquema completo, sondeo y gestión de errores.







