SabiucoAPI

Referencia

Chat completions

POST /chat/completions: parámetros, respuesta y ejemplos.

Genera la respuesta de Sabiuco a una conversación.

http
POST https://sabiuco.app/api/v1/chat/completions

Parámetros del cuerpo (JSON)

ParámetroTipoObligatorioDescripción
modeltextosísabiuco, sabiuco-rapido o el id de un asistente tuyo (asst_…).
messageslistasíLa conversación, del mensaje más antiguo al más reciente (máx. 2.000).
streambooleanonotrue para recibir la respuesta en trozos. Ver Streaming.
stream_options.include_usagebooleanonoCon stream, añade al final un trozo con el consumo.
max_tokens / max_completion_tokensenteronoTope de tokens de salida, razonamiento incluido. Por defecto 16.384; máximo 524.288. Para respuestas largas usa stream (ver Límites y cuotas).
temperaturenúmeronoDe 0 a 2. Más bajo es más preciso y repetible; más alto, más creativo. Por defecto 1.
top_pnúmeronoEntre 0 (excluido) y 1. Por defecto 0,95. Ajusta temperature o top_p, no los dos.
reasoning_efforttextono"none" o "minimal" desactivan el razonamiento; cualquier otro valor lo activa. Si no lo envías, decide el modelo.

Los parámetros que no aparecen en la tabla se ignoran. n distinto de 1 y tools (llamadas a funciones) todavía no están disponibles y devuelven 400.

Mensajes

Cada mensaje es un objeto con role y content:

rolePara qué sirve
systemInstrucciones de comportamiento: tono, formato, reglas. developer se acepta como sinónimo.
userLo que dice la persona usuaria. Puede incluir imágenes.
assistantRespuestas anteriores de Sabiuco, para mantener el contexto.

content puede ser texto o una lista de partes:

JSON
{
  "role": "user",
  "content": [
    { "type": "text", "text": "¿Qué pone en este cartel?" },
    { "type": "image_url", "image_url": { "url": "https://ejemplo.com/cartel.jpg" } }
  ]
}

Respuesta

JSON
{
  "id": "chatcmpl-hx…",
  "object": "chat.completion",
  "created": 1790264396,
  "model": "sabiuco",
  "choices": [
    { "index": 0, "message": { "role": "assistant", "content": "…" }, "finish_reason": "stop" }
  ],
  "usage": {
    "prompt_tokens": 262,
    "completion_tokens": 44,
    "total_tokens": 306,
    "completion_tokens_details": { "reasoning_tokens": 30 }
  }
}
CampoDescripción
idIdentificador de la respuesta. También llega en la cabecera x-request-id; inclúyelo si contactas con soporte.
modelEl modelo que pediste.
choices[0].message.contentEl texto generado. Nunca incluye el razonamiento interno.
choices[0].finish_reasonstop si terminó con normalidad; length si llegó a max_tokens.
usage.prompt_tokensTokens de entrada, contando las instrucciones del asistente si lo usas.
usage.completion_tokensTokens de salida, razonamiento incluido.
usage.completion_tokens_details.reasoning_tokensCuántos de los de salida fueron de razonamiento.

Ejemplo completo

Python
from openai import OpenAI

cliente = OpenAI(base_url="https://sabiuco.app/api/v1", api_key="hx_...")

r = cliente.chat.completions.create(
    model="sabiuco",
    temperature=0.3,
    max_tokens=800,
    messages=[
        {"role": "system", "content": "Eres un profesor de física. Explica con ejemplos cotidianos."},
        {"role": "user", "content": "¿Por qué el cielo es azul?"},
    ],
)
print(r.choices[0].message.content)
print("Tokens:", r.usage.total_tokens)

Identidad del modelo

Sabiuco se presenta siempre como Sabiuco y responde en el idioma de quien le escribe. Si usas un asistente propio, sus instrucciones se aplican antes que las de tus mensajes system.