Tema
Idioma

Chat Completions

/v1/chat/completions — el endpoint de chat compatible con OpenAI. Parámetros model, messages, stream, temperature. Streaming mediante SSE. Ejemplos de solicitudes y respuestas en curl, Python (openai) y Node.

El endpoint de chat compatible con OpenAI. Funciona con cualquier SDK de OpenAI; solo cambia base_url por https://getvibeapi.com/v1.

POSThttps://getvibeapi.com/v1/chat/completions

Parámetros del cuerpo de la solicitud

GetVibe implementa un contrato compatible con Chat Completions, no un pasaje directo byte por byte: comprueba el acceso, resuelve el id de modelo público, aplica límites y puede normalizar los campos de solicitud compatibles. Las respuestas y los errores también se normalizan y no garantizan campos ni encabezados específicos del proveedor ascendente. Para la mayoría de las tareas, los tres primeros, model, messages y stream, son suficientes.

Básico — funciona con todos los modelos
ParámetroTipoDescripción
modelreq.stringUn nombre de modelo del catálogo, por ejemplo gpt-6.1-sol o claude-opus-5.5.
messagesreq.arrayMatriz de mensajes { role, content }. Roles: system, user, assistant.
streambooleantrue — transmite la respuesta mediante SSE.
max_tokensintegerMáximo de tokens en la respuesta. Recomendamos al menos 64: con un valor demasiado pequeño (por ejemplo, ≤ 16), el modelo puede alcanzar el límite (finish_reason: length) antes del primer token visible y devolver una respuesta vacía. Si necesitas un resultado breve, pídelo en el prompt y mantén max_tokens con margen suficiente.
temperaturenumberAleatoriedad de salida, 0–2. Predeterminado: 1.
Avanzado: la compatibilidad depende del modelo
ParámetroTipoDescripción
top_pnumbermodel-dependentMuestreo de núcleo (0–1). Alternativa a temperature; no se recomienda cambiar ambos a la vez.
top_knumberClaudeMuestreo Top-K. Solo modelos de Anthropic.
seedintegerGPTFija el resultado para garantizar la reproducibilidad. Serie GPT; se ignora en otros casos.
stopstring | arraymodel-dependentSecuencia de detención: una cadena o una lista de hasta 4 cadenas.
frequency_penaltynumberGPT · ClaudePenalización por repetir tokens según su frecuencia (-2 a 2).
presence_penaltynumberGPT · ClaudePenalización para tokens que ya se hayan visto (-2 a 2).
logprobsboolean—Ninguna ruta actual devuelve log-probabilidades: el parámetro se elimina antes del envío y se indica en el encabezado x-getvibe-warnings (param_dropped:logprobs); la solicitud no se rechaza.
top_logprobsinteger—Se elimina junto con logprobs y se indica en x-getvibe-warnings.
logit_biasobjectGPTID del token → sesgo de logit (-100 a 100).
userstringmodel-dependentIdentificador del usuario final (se envía al proveedor para el seguimiento de los límites de velocidad).
response_formatobjectGPT · ClaudeFuerza la salida a JSON. Más información →
tools / tool_choicearray / stringGPT · ClaudeLlamadas a funciones. Más información →

Insignias en la columna “Support”: GPT — solo series GPT, Claude — solo modelos de Anthropic, GPT · Claude — ambas familias, depende del modelo — consulta la documentación de ese modelo.

Compatibilidad de parámetros por variante de ruta

El mismo modelo puede estar disponible a través de distintas rutas (variantes :1, :2, …). Las rutas difieren en precio, velocidad y el conjunto de parámetros compatibles.

Comparación de variantes de ruta
ParámetroTipoDescripción
Default variant (:1)basicConjunto completo de parámetros de OpenAI: temperature, top_p, seed, stop, penalties, logprobs, tools, response_format, streaming con un fragmento de usage.
Subscription variants (:2, :3…)advancedEl conjunto de parámetros coincide con el básico, pero la ruta utiliza una infraestructura diferente. Es posible que algunos parámetros individuales no sean compatibles; lo indicamos en la descripción de la variante.
or-* variantsor-*Envía la solicitud a través de un agregador independiente. La compatibilidad de los parámetros depende del proveedor específico. tool_choice: "required" y algunos parámetros de muestreo pueden no funcionar.
El proveedor ignora un parámetro desconocido o devuelve un 400. Si un parámetro es importante, usa la variante :1 (predeterminada) o comprueba la compatibilidad en la descripción de la variante en la página Models.

Solicitud de ejemplo

curl https://getvibeapi.com/v1/chat/completions \
  -H "Authorization: Bearer $GETVIBE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-6.1-sol",
    "messages": [
      {"role": "user", "content": "Hello! Who are you?"}
    ]
  }'

Respuesta de ejemplo

{
  "id": "chatcmpl-...",
  "object": "chat.completion",
  "model": "gpt-6.1-sol",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Hi! I'm an assistant available through GetVibe API."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 12,
    "completion_tokens": 14,
    "total_tokens": 26
  }
}

Transmisión (SSE)

Con "stream": true, la respuesta llega como un flujo de Server-Sent Events: eventos data: … con deltas, que terminan con data: [DONE].

curl https://getvibeapi.com/v1/chat/completions \
  -H "Authorization: Bearer $GETVIBE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-6.1-sol",
    "stream": true,
    "messages": [{"role": "user", "content": "Count to three"}]
  }'

Fragmento final con el uso

El último fragmento antes de data: [DONE] tiene un choices: [] vacío y un campo usage con estadísticas de tokens. Úsalo para la facturación; no sumes los deltas manualmente.

data: {"id":"chatcmpl-...","choices":[],"usage":{"prompt_tokens":42,"completion_tokens":87,"total_tokens":129},"model":"gpt-6.1-sol","object":"chat.completion.chunk"}

data: [DONE]

Cada respuesta que no sea un stream cuyo costo se pueda estimar incluye el encabezado de respuesta x-pv-cost-rub. De forma predeterminada, los cuerpos de los streams no contienen pv_cost_rub; envía x-pv-cost: 1 para añadir el costo al evento de uso final de ese protocolo. Esta es una estimación de mejor esfuerzo; para conocer el débito real, consulta el historial de solicitudes GET /v1/generations.

Compatibilidad

El endpoint es compatible con los SDK de OpenAI (Python, Node y más), Codex CLI y Claude Code. Claude Code funciona mediante /v1/messages con el encabezado x-api-key; consulta Messages and Responses.

API de Chat Completions de GetVibe: ejemplos en Python y curl | GetVibe API