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.
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.
| Parámetro | Tipo | Descripción |
|---|---|---|
modelreq. | string | Un nombre de modelo del catálogo, por ejemplo gpt-6.1-sol o claude-opus-5.5. |
messagesreq. | array | Matriz de mensajes { role, content }. Roles: system, user, assistant. |
stream | boolean | true — transmite la respuesta mediante SSE. |
max_tokens | integer | Má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. |
temperature | number | Aleatoriedad de salida, 0–2. Predeterminado: 1. |
| Parámetro | Tipo | Descripción |
|---|---|---|
top_p | numbermodel-dependent | Muestreo de núcleo (0–1). Alternativa a temperature; no se recomienda cambiar ambos a la vez. |
top_k | numberClaude | Muestreo Top-K. Solo modelos de Anthropic. |
seed | integerGPT | Fija el resultado para garantizar la reproducibilidad. Serie GPT; se ignora en otros casos. |
stop | string | arraymodel-dependent | Secuencia de detención: una cadena o una lista de hasta 4 cadenas. |
frequency_penalty | numberGPT · Claude | Penalización por repetir tokens según su frecuencia (-2 a 2). |
presence_penalty | numberGPT · Claude | Penalización para tokens que ya se hayan visto (-2 a 2). |
logprobs | boolean— | 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_logprobs | integer— | Se elimina junto con logprobs y se indica en x-getvibe-warnings. |
logit_bias | objectGPT | ID del token → sesgo de logit (-100 a 100). |
user | stringmodel-dependent | Identificador del usuario final (se envía al proveedor para el seguimiento de los límites de velocidad). |
response_format | objectGPT · Claude | Fuerza la salida a JSON. Más información → |
tools / tool_choice | array / stringGPT · Claude | Llamadas 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.
| Parámetro | Tipo | Descripción |
|---|---|---|
Default variant (:1) | basic | Conjunto 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…) | advanced | El 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-* variants | or-* | 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. |
: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.