Saltar a la documentación

Chat Completions

Conversaciones de texto y llamadas de función ejecutadas por el cliente en formato OpenAI Chat.

Actualizado el 31 de octubre de 2026 · Contrato 0.2.0

POST/v1/chat/completions

Contrato de solicitud

Envía de 1 a 128 mensajes ordenados de tipo system, user, assistant o tool. Usa max_tokens o max_completion_tokens, nunca ambos. Cada solicitud está limitada por el máximo configurado del modelo y los límites compartidos de entrada serializada.

Llamadas de función

Se admiten hasta ocho funciones declaradas y resultados de llamadas con límites. tool_choice puede ser auto, none, required o una función con nombre. El cliente ejecuta las funciones devueltas; una función llamada shell nunca autoriza la ejecución en los hosts de NotHoly.

Streaming

Define stream:true. Los chunks conservan un ID estable y fragmentos indexados de argumentos de herramientas. include_usage emite un chunk final solo con uso. [DONE] aparece únicamente después de una finalización correcta; una salida parcial puede ir seguida de un error.

Respuesta y limitaciones

Lee choices[0].message y finish_reason. El contenido puede ser null en turnos solo de herramientas. Los campos desconocidos y los ciclos de herramientas malformados fallan antes del envío. Los campos opcionales de esfuerzo, muestreo y formato de respuesta requieren una capacidad del modelo activada de forma explícita; el esquema generado documenta su formato exacto aceptado.

Ejemplo de solicitud

Usa tu clave de cliente y un modelo publicado. Copiar un ejemplo no envía una solicitud.

curl
curl https://api.notholy.com/v1/chat/completions \
  -H "Authorization: Bearer $NOTHOLY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "notholy-pulse",
  "messages": [
    {
      "role": "user",
      "content": "Explain least privilege."
    }
  ],
  "max_tokens": 256
}'

Fixture de contrato HTTP. Las comprobaciones con fixtures son distintas de la disponibilidad de modelos en vivo.

Campos de solicitud

Generado a partir del contrato versionado. Las reglas de refinamiento anteriores siguen aplicándose.

modelstringobligatorio

Hasta 100 caracteres.

messagesarray<object | object | object>obligatorio

Hasta 128 elementos. Al menos 1 elemento.

toolsarray<object>

Hasta 8 elementos.

Mostrar campos del elemento
type"function"obligatorio

functionobjectobligatorio

Se rechazan los campos desconocidos.

Mostrar campos del objeto
namestringobligatorio

descriptionstring

Predeterminado: "". Hasta 1000 caracteres.

parametersobjectobligatorio

tool_choice"auto" | "none" | "required" | object

Mostrar variantes aceptadas
Variante 1"auto" | "none" | "required"

Variante 2object

Se rechazan los campos desconocidos.

Mostrar campos del objeto
type"function"obligatorio

functionobjectobligatorio

Se rechazan los campos desconocidos.

Mostrar campos del objeto
namestringobligatorio

max_tokensinteger

Mínimo de 1. Máximo de 512.000.

max_completion_tokensinteger

Mínimo de 1. Máximo de 512.000.

reasoning_effort"off" | "none" | "low" | "high" | "max"

temperaturenumber

Mínimo de 0. Máximo de 2.

top_pnumber

Mínimo de 0. Máximo de 1.

stopstring | array<string>

Mostrar variantes aceptadas
Variante 1string

Hasta 1024 caracteres.

Variante 2array<string>

Hasta 16 elementos. Al menos 1 elemento.

response_formatobject | object | object

Mostrar variantes aceptadas
Variante 1object

Se rechazan los campos desconocidos.

Mostrar campos del objeto
type"text"obligatorio

Variante 2object

Se rechazan los campos desconocidos.

Mostrar campos del objeto
type"json_object"obligatorio

Variante 3object

Se rechazan los campos desconocidos.

Mostrar campos del objeto
type"json_schema"obligatorio

json_schemaobjectobligatorio

Se rechazan los campos desconocidos.

Mostrar campos del objeto
namestringobligatorio

descriptionstring

Hasta 1000 caracteres.

schemaobjectobligatorio

strictboolean

effort"off" | "none" | "low" | "high" | "max"

prompt_tokensinteger

Mínimo de 0. Máximo de 9.007.199.254.740.991.

streamboolean

Predeterminado: false.

stream_optionsobject

Se rechazan los campos desconocidos.

Mostrar campos del objeto
include_usagebooleanobligatorio

Esquema de respuesta

idstringobligatorio

object"chat.completion"obligatorio

createdintegerobligatorio

Mínimo de -9.007.199.254.740.991. Máximo de 9.007.199.254.740.991.

modelstringobligatorio

choicesarray<object>obligatorio

Hasta 1 elemento. Al menos 1 elemento.

Mostrar campos del elemento
index0obligatorio

messageobjectobligatorio

Se rechazan los campos desconocidos.

Mostrar campos del objeto
role"assistant"obligatorio

contentstring | nullobligatorio

reasoning_contentstring

tool_callsarray<object>

Mostrar campos del elemento
idstringobligatorio

type"function"obligatorio

functionobjectobligatorio

Se rechazan los campos desconocidos.

finish_reason"stop" | "tool_calls" | "length"obligatorio

usageobjectobligatorio

Se rechazan los campos desconocidos.

Mostrar campos del objeto
prompt_tokensinteger | nullobligatorio

Mínimo de -9.007.199.254.740.991. Máximo de 9.007.199.254.740.991.

completion_tokensinteger | nullobligatorio

Mínimo de -9.007.199.254.740.991. Máximo de 9.007.199.254.740.991.

total_tokensinteger | nullobligatorio

Mínimo de -9.007.199.254.740.991. Máximo de 9.007.199.254.740.991.

prompt_tokens_detailsobject

Se rechazan los campos desconocidos.

Mostrar campos del objeto
cached_tokensintegerobligatorio

Mínimo de 0. Máximo de 9.007.199.254.740.991.

completion_tokens_detailsobject

Se rechazan los campos desconocidos.

Mostrar campos del objeto
reasoning_tokensintegerobligatorio

Mínimo de 0. Máximo de 9.007.199.254.740.991.