Unquant

Opening your workspace…

Unquant

Completaciones de chat

Completions de chat compatibles con OpenAI, con streaming, imágenes, llamadas a herramientas y control de razonamiento.

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!"}]}'

Campos de la solicitud

Núcleo
modelstringRequerido

glm-5.3-flash o qwen-3.8-flash-next.

messagesarrayRequerido

Roles system, user, assistant y tool. El contenido es una cadena o un array de partes text e image_url.

streamboolean

Transmite la respuesta como server-sent events.

stream_optionsobject

{"include_usage": true} agrega un chunk final con los contadores de tokens.

Longitud
max_tokensinteger

Límite superior de la longitud de la respuesta.

max_completion_tokensinteger

Equivalente a max_tokens.

Muestreo
temperaturenumber

Aleatoriedad del muestreo.

top_pnumber

Muestreo por núcleo.

top_kinteger

Muestrea de los k tokens más probables.

min_pnumber

Probabilidad relativa mínima para un token.

seedinteger

Semilla para muestreo reproducible.

stopstring or array

Secuencias de parada.

Repetición
frequency_penaltynumber

Penaliza los tokens según la frecuencia con que aparecieron.

presence_penaltynumber

Penaliza los tokens que aparecieron aunque sea una vez.

repetition_penaltynumber

Penalización multiplicativa por repetición.

Herramientas
toolsarray

Funciones que el modelo puede llamar, en formato OpenAI.

tool_choicestring or object

auto, none, required o una función con nombre.

parallel_tool_callsboolean

Permite varias llamadas a herramientas en un turno.

Salida
response_formatobject

Salida en JSON.

logprobsboolean

Devuelve las probabilidades logarítmicas de los tokens.

top_logprobsinteger

Cuántas alternativas devolver por token.

ninteger

Debe ser 1: un completion por solicitud.

Razonamiento
reasoning_effortstring

Ambos modelos: none, low o high; GLM-5.3-Flash también acepta max.

chat_template_kwargsobject

Modificadores de plantilla, como {"enable_thinking": false}.

Los demás campos se ignoran.

Respuesta

response.choices[0].message.content

Los contadores de uso se devuelven para monitoreo propio; nunca se facturan.

Streaming

Con "stream": true la respuesta llega como server-sent events en formato de chunk de OpenAI, finalizando con data: [DONE]. Lee el texto desde choices[0].delta.content.

Imágenes

Ambos modelos aceptan imágenes como partes image_url que contienen una data URL en base64 (data:image/png;base64,..., JPEG o WebP). Los enlaces de imágenes por URL no se recuperan y devuelven 400.

{"role": "user", "content": [
  {"type": "text", "text": "Describe this image."},
  {"type": "image_url", "image_url": {"url": "data:image/jpeg;base64,/9j/4AAQ..."}}
]}

Llamadas a herramientas

Pasa tools como en la API de OpenAI. Cuando el modelo llama a una herramienta, la respuesta tiene finish_reason: "tool_calls" y message.tool_calls; ejecuta la herramienta, agrega un mensaje tool con su resultado y el tool_call_id correspondiente, y vuelve a llamar.

Razonamiento

Ambos modelos razonan antes de responder y ambos aceptan reasoning_effort: none para respuestas directas, low para razonamiento ligero o high para problemas más complejos; GLM-5.3-Flash también tiene max y usa high por defecto. El razonamiento se devuelve por separado en reasoning_content, nunca mezclado con content. "thinking": {"type": "disabled"} y "chat_template_kwargs": {"enable_thinking": false} también lo desactivan.

Concurrencia

El plan determina cuántas solicitudes pueden ejecutarse a la vez en todas las claves. Una solicitud que supere ese límite devuelve 429 de inmediato y no se pone en cola; las solicitudes en curso no se ven afectadas.

Guía para desarrolladores