curl --request POST \
--url https://direct.evolink.ai/v1/responses \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "glm-5.3-flash",
"input": "Preséntate en una frase.",
"max_output_tokens": 1024,
"reasoning": {
"effort": "low"
}
}
'{
"id": "response_demo",
"object": "response",
"created_at": 1789971757,
"model": "glm-5.3-flash",
"status": "completed",
"output": [
{
"type": "message",
"id": "message_demo",
"status": "completed",
"role": "assistant",
"content": [
{
"type": "output_text",
"text": "Hola, soy GLM. Puedo ayudarte a conversar, escribir y programar.",
"annotations": []
}
]
}
],
"usage": {
"input_tokens": 17,
"output_tokens": 24,
"total_tokens": 41,
"input_tokens_details": {
"cached_tokens": 0
},
"output_tokens_details": {
"reasoning_tokens": 0
}
},
"error": null
}{
"error": {
"message": "<string>",
"type": "<string>",
"param": "<string>",
"code": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "<string>",
"param": "<string>",
"code": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "<string>",
"param": "<string>",
"code": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "<string>",
"param": "<string>",
"code": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "<string>",
"param": "<string>",
"code": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "<string>",
"param": "<string>",
"code": "<string>"
}
}Interfaz de todos los modelos GLM - Referencia completa de Responses
Invoca GLM en formato Responses para conversaciones de texto, streaming y llamadas a funciones. La comprensión de imágenes y la búsqueda web dependen del modelo. Los parámetros y las diferencias se explican a continuación.
curl --request POST \
--url https://direct.evolink.ai/v1/responses \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "glm-5.3-flash",
"input": "Preséntate en una frase.",
"max_output_tokens": 1024,
"reasoning": {
"effort": "low"
}
}
'{
"id": "response_demo",
"object": "response",
"created_at": 1789971757,
"model": "glm-5.3-flash",
"status": "completed",
"output": [
{
"type": "message",
"id": "message_demo",
"status": "completed",
"role": "assistant",
"content": [
{
"type": "output_text",
"text": "Hola, soy GLM. Puedo ayudarte a conversar, escribir y programar.",
"annotations": []
}
]
}
],
"usage": {
"input_tokens": 17,
"output_tokens": 24,
"total_tokens": 41,
"input_tokens_details": {
"cached_tokens": 0
},
"output_tokens_details": {
"reasoning_tokens": 0
}
},
"error": null
}{
"error": {
"message": "<string>",
"type": "<string>",
"param": "<string>",
"code": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "<string>",
"param": "<string>",
"code": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "<string>",
"param": "<string>",
"code": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "<string>",
"param": "<string>",
"code": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "<string>",
"param": "<string>",
"code": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "<string>",
"param": "<string>",
"code": "<string>"
}
}https://direct.evolink.ai, que ofrece mejor compatibilidad con los modelos de texto y las conexiones de larga duración. https://api.evolink.ai es el endpoint principal para los servicios multimodales y sirve como dirección de respaldo para los modelos de texto.Modelos y diferencias de parámetros
Elige un modelo GLM. Los cuatro admiten texto en este endpoint. Las funciones opcionales varían según el modelo.| ID del modelo | Entrada | Notas de razonamiento |
|---|---|---|
glm-5.3 | Texto | Niveles efectivos: low / high / max; valores compatibles en reasoning. No se puede desactivar el razonamiento. |
glm-5.3-flash | Texto, imágenes | Igual que glm-5.3; usa input_image para las imágenes. |
glm-5.3-flashx | Texto, imágenes | Igual que glm-5.3; usa input_image para las imágenes. |
glm-5.2 | Texto | none puede seguir produciendo tokens de razonamiento y no garantiza su desactivación. |
reasoning.effort anidado, en lugar de reasoning_effort o thinking en el nivel superior. Los tokens de razonamiento están incluidos en output_tokens. Las tareas simples pueden devolver reasoning_tokens=0; eso no significa que se pueda desactivar el razonamiento.
Intensidad de razonamiento; se recomienda low.
Reglas de compatibilidad de glm-5.3 / glm-5.3-flash / glm-5.3-flashx
| Valor enviado | Nivel efectivo de razonamiento |
|---|---|
low / high / max | Sin cambios |
xhigh | max |
medium | high |
minimal / none | low; el razonamiento sigue activo |
minimal y none no desactivan el razonamiento de la serie 5.3. Sus tokens se facturan como salida. Los valores desconocidos se mantienen sin conversión de compatibilidad; usa los valores indicados. Estas reglas no se aplican a glm-5.2.
En este endpoint, glm-5.2 puede seguir produciendo tokens de razonamiento con none. Este valor no garantiza su desactivación.
Prompts del sistema y conversaciones de varios turnos
instructions: Instrucciones del sistema. glm-5.3-flash admite este campo cuando input es una cadena. Si es un array de mensajes, coloca el prompt del sistema en el primer mensaje role=system.
{
"model": "glm-5.3-flash",
"input": [
{
"role": "system",
"content": "Responde de forma concisa en español."
},
{
"role": "user",
"content": "Recuerda la contraseña RED-583"
},
{
"role": "assistant",
"content": "Recordado"
},
{
"role": "user",
"content": "¿Cuál es la contraseña? Responde solo con la contraseña."
}
],
"reasoning": {
"effort": "low"
},
"max_output_tokens": 1024
}
glm-5.3-flash y glm-5.3-flashx permiten continuar con store=true y previous_response_id. glm-5.2 no admite la continuación mediante ID; store=true no la activa. Incluye el historial completo en input.
id de nivel superior de la respuesta anterior. glm-5.3-flash y glm-5.3-flashx lo admiten con store=true y el mismo modelo. Pasa el id de respuesta sin cambios, no el id de un elemento output. glm-5.2 devuelve 400 para este campo. Si cambias de modelo, omítelo e incluye todo el historial en input.
Respuestas en streaming
Activa el streaming SSE. Lee el texto en delta de response.output_text.delta. El evento final de éxito es response.completed. Finaliza el turno y gestiona tambiénresponse.incomplete, response.failed o error. No esperes únicamente [DONE] o el cierre de la conexión.
| Evento | Tratamiento |
|---|---|
response.created / response.in_progress | Comienza el turno. |
response.output_text.delta | Añade delta al texto de respuesta. |
response.reasoning_text.delta / response.reasoning_summary_text.delta | Separa el razonamiento del texto y admite ambas formas de evento. |
response.output_item.done | Recoge el elemento de salida completo, como function_call. |
response.completed | Ha terminado la generación; lee response.output y response.usage. |
response.incomplete / response.failed / error | Gestiona el truncamiento o el error y termina el turno. |
response.completed y seguir requiriendo que tu aplicación ejecute la función y envíe otra solicitud.
Llamadas a funciones
Elige el ejemplo de función en el menú de solicitudes. Responses usa definiciones de función sin anidamiento:{
"type": "function",
"name": "get_temperature",
"description": "Devuelve la temperatura de la ciudad indicada",
"parameters": {
"type": "object",
"properties": {
"city": {
"type": "string"
}
},
"required": [
"city"
],
"additionalProperties": false
}
}
- Recorre
response.outputy recoge todos los elementos type=function_call. - Analiza y valida la cadena JSON arguments y ejecuta cada función en tu aplicación.
- Añade todo el output anterior al historial. Agrega un
function_call_outputpor llamada, con elcall_idoriginal y un output de tipo cadena. - Envía el historial actualizado como input de la siguiente solicitud. El ejemplo de devolución de resultados muestra esta estructura.
parallel_tool_calls: Permite varias llamadas a herramientas por turno. false no garantiza una sola llamada a función. El cliente debe recorrer y procesar todos los function_call.Imágenes, búsqueda y salida JSON
Conglm-5.3-flash y glm-5.3-flashx, combina input_text e input_image en el array content del mensaje de usuario. Pasa una URL pública o Data URL Base64 en image_url. Usa solo texto con glm-5.3 y glm-5.2.
Declara tools: [{"type":"web_search"}]. La búsqueda se ejecuta en el servidor y devuelve elementos web_search_call y texto. Comprueba los elementos de salida para saber si se utilizó. Puede haber cargos por búsqueda además de los tokens; consulta el precio del modelo.
Para continuar después de una búsqueda, añade todo el output anterior, incluidos web_search_call y message, a input y después agrega tu nueva pregunta. Conserva los campos originales como id, status y action. El servidor ya ha ejecutado la búsqueda, por lo que no debes crear un function_call_output para web_search_call. Consulta el ejemplo de solicitud web_search_history.
text.format.type: Formato de salida: text para texto y json_object para un objeto JSON. Con json_object, pide JSON válido explícitamente en el prompt y analízalo y valídalo en el cliente. No se ofrecen restricciones estrictas de JSON Schema; json_schema o strict=true no garantizan una estructura concreta.
Respuestas y uso
Elementos de salida ordenados. Extrae text de las entradas content contype=output_text dentro de los elementos type=message. reasoning puede preceder a la respuesta y los turnos function_call pueden no tener texto. No leas siempre output[0].
output_text: Texto de respuesta agregado opcional; puede faltar. Los clientes genéricos deben recorrer output.
output_text en elementos message; puede ser reasoning_text en elementos reasoning. El razonamiento también puede devolverse mediante summary_text. No supongas que todos los elementos reasoning tienen content.
usage.input_tokens: Total de tokens de entrada, incluidos los que coinciden con la caché.usage.input_tokens_details.cached_tokens: Subconjunto de tokens de entrada encontrado en caché; no lo sumes de nuevo a input_tokens. La caché de prefijos es automática y no requierecache_controlexplícito. Usa el valor devuelto para conocer los aciertos.usage.output_tokens: Total de tokens de salida, incluido el razonamiento.usage.output_tokens_details.reasoning_tokens: Subconjunto de tokens de salida usado para razonar; no lo cuentes de nuevo en output_tokens. Este detalle puede faltar o valer 0.
status=incomplete con incomplete_details.reason=max_output_tokens indica que se agotó el presupuesto. Puede haber razonamiento sin respuesta; aumenta el límite de salida.Autorizaciones
Envía Bearer YOUR_API_KEY en la cabecera Authorization.
Cuerpo
Elige un modelo GLM. Los cuatro admiten texto en este endpoint. Las funciones opcionales varían según el modelo.
| ID del modelo | Entrada | Notas de razonamiento |
|---|---|---|
glm-5.3 | Texto | Niveles efectivos: low / high / max; valores compatibles en reasoning. No se puede desactivar el razonamiento. |
glm-5.3-flash | Texto, imágenes | Igual que glm-5.3; usa input_image para las imágenes. |
glm-5.3-flashx | Texto, imágenes | Igual que glm-5.3; usa input_image para las imágenes. |
glm-5.2 | Texto | none puede seguir produciendo tokens de razonamiento y no garantiza su desactivación. |
glm-5.3, glm-5.3-flash, glm-5.3-flashx, glm-5.2 "glm-5.3-flash"
Obligatorio. Cadena de texto o array de elementos de entrada Responses. El array admite mensajes, elementos de salida del modelo reenviados y function_call_output. Para varios turnos, incluye el historial completo en cada solicitud. Coloca el prompt del sistema al principio como mensaje role=system. Las imágenes usan input_image, solo con glm-5.3-flash y glm-5.3-flashx. No uses el formato de bloques messages / image_url de Chat Completions.
"Preséntate en una frase."
Máximo de tokens de salida de esta generación, incluido el razonamiento. Empieza con 1024 y ajusta según la tarea. Un límite pequeño puede agotarse durante el razonamiento y devolver solo elementos reasoning, sin respuesta. Comprueba status e incomplete_details. El parámetro se llama max_output_tokens, no max_tokens.
x >= 11024
Activa el streaming SSE. Lee el texto en delta de response.output_text.delta. El evento final de éxito es response.completed. Finaliza el turno y gestiona también response.incomplete, response.failed o error. No esperes únicamente [DONE] o el cierre de la conexión.
Responses usa reasoning.effort anidado, en lugar de reasoning_effort o thinking en el nivel superior. Los tokens de razonamiento están incluidos en output_tokens. Las tareas simples pueden devolver reasoning_tokens=0; eso no significa que se pueda desactivar el razonamiento.
Show child attributes
Show child attributes
Instrucciones del sistema. glm-5.3-flash admite este campo cuando input es una cadena. Si es un array de mensajes, coloca el prompt del sistema en el primer mensaje role=system.
Admite herramientas function del lado del cliente y web_search del lado del servidor. Declara funciones con name / description / parameters al mismo nivel, sin anidarlas en un objeto function como en Chat Completions. Tu aplicación ejecuta function_call y devuelve el resultado. web_search se ejecuta en el servidor; las búsquedas realizadas pueden tener un coste por llamada además de los tokens. Consulta el precio del modelo.
- Option 1
- Option 2
Show child attributes
Show child attributes
auto permite elegir al modelo; none desactiva las herramientas; required exige una llamada. Para una función concreta, usa {"type":"function","name":"get_temperature"}. La selección forzada no garantiza el mismo comportamiento en todas las combinaciones de modelos y herramientas.
auto, none, required "auto"
Permite varias llamadas a herramientas por turno. false no garantiza una sola llamada a función. El cliente debe recorrer y procesar todos los function_call.
Formato de salida. Los ejemplos usan json_object; HTTP 200 no garantiza el cumplimiento de un esquema JSON.
Show child attributes
Show child attributes
Guarda la respuesta para referenciarla después. glm-5.3-flash y glm-5.3-flashx permiten continuar con store=true y previous_response_id. glm-5.2 no admite la continuación mediante ID; store=true no la activa. Incluye el historial completo en input.
id de nivel superior de la respuesta anterior. glm-5.3-flash y glm-5.3-flashx lo admiten con store=true y el mismo modelo. Pasa el id de respuesta sin cambios, no el id de un elemento output. glm-5.2 devuelve 400 para este campo. Si cambias de modelo, omítelo e incluye todo el historial en input.
"ID de respuesta devuelto en el turno anterior"
Metadatos personalizados de cadenas clave-valor, disponibles en metadata de la respuesta. No incluyas claves secretas ni información sensible.
Show child attributes
Show child attributes
{ "conversation": "demo" }
Parámetro de muestreo. El rango efectivo y el comportamiento dependen del modelo. No garantiza una salida determinista y se puede omitir en tareas de razonamiento.
Parámetro de muestreo. El rango efectivo y el comportamiento dependen del modelo. Normalmente se puede omitir.
Respuesta
Generación terminada o resultado incompleto; comprueba status. En streaming se devuelve text/event-stream.
ID de esta respuesta. Pásalo sin cambios en previous_response_id.
"response_demo"
"response"Fecha de creación en segundos Unix.
"glm-5.3-flash"
completed indica que ha terminado la generación del turno, posiblemente solo con llamadas a herramientas. incomplete indica una salida incompleta. Comprueba output y error.
completed, incomplete, failed, in_progress, queued Elementos de salida ordenados. Extrae text de las entradas content con type=output_text dentro de los elementos type=message. reasoning puede preceder a la respuesta y los turnos function_call pueden no tener texto. No leas siempre output[0].
Show child attributes
Show child attributes
Texto de respuesta agregado opcional; puede faltar. Los clientes genéricos deben recorrer output.
Show child attributes
Show child attributes
Error de respuesta; normalmente null si la solicitud tiene éxito.
Show child attributes
Show child attributes
Show child attributes
Show child attributes