Chat Completions
MarkdownRespuesta del modelo a una conversación en formato OpenAI. Es el formato más extendido: casi todos los clientes lo admiten.
Guía completa
https://api.ailoot.ai/v1/chat/completionscurl https://api.ailoot.ai/v1/chat/completions \
-H "Authorization: Bearer $AILOOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-5-5",
"messages": [
{"role": "user", "content": "Explica en dos oraciones qué es una API."}
]
}' from openai import OpenAI
import os
client = OpenAI(max_retries=0,
base_url="https://api.ailoot.ai/v1",
api_key=os.environ["AILOOT_API_KEY"],
)
resp = client.chat.completions.create(
model="claude-sonnet-5-5",
messages=[{"role": "user", "content": "Explica en dos oraciones qué es una API."}],
)
print(resp.choices[0].message.content)import OpenAI from "openai";
const client = new OpenAI({ maxRetries: 0,
baseURL: "https://api.ailoot.ai/v1",
apiKey: process.env.AILOOT_API_KEY,
});
const resp = await client.chat.completions.create({
model: "claude-sonnet-5-5",
messages: [{ role: "user", content: "Explica en dos oraciones qué es una API." }],
});
console.log(resp.choices[0].message.content);{
"id": "chatcmpl-8f2c…",
"object": "chat.completion",
"created": 1790812800,
"model": "claude-sonnet-5-5",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Una API es un acuerdo sobre cómo un programa le pide a otro que haga algo…"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 21,
"completion_tokens": 48,
"total_tokens": 69
}
}Autenticación
- Authorizationheaderobligatorio
Clave en formato
Bearer sk-…. También se admiten los encabezadosx-api-keyox-goog-api-key.
Cuerpo de la solicitud
- modelstringobligatorio
ID del modelo en el catálogo, por ejemplo,
claude-sonnet-5-5. El modelo debe admitir el formato OpenAI Chat. - messagesarrayobligatorio
Historial de la conversación: objetos con
role(system,developer,user,assistant,tool) ycontentcomo cadena o arreglo de partes (texto,image_url). - streambooleanopcional
Respuesta en formato Server-Sent Events. El valor predeterminado es
false. El texto de pago llega en un solo bloque después de calcular el costo, no palabra por palabra. - stream_optionsobjectopcional
{"include_usage": true}: envía los datos finales deusagecomo último evento del flujo. - max_tokensintegeropcional
Número máximo de tokens de respuesta. El nuevo nombre es
max_completion_tokens. Si no se indica el límite, Ailoot establece 4096 (o menos, si el máximo de respuesta del modelo es inferior; Grok tiene su propio límite). Para respuestas largas, indica el límite explícitamente; de lo contrario, la respuesta se detendrá en 4096 tokens confinish_reason: "length". El límite forma parte de la reserva: cuanto mayor sea, más saldo disponible se necesita. - temperaturenumberopcional
Aleatoriedad de la respuesta, normalmente de 0 a 2. Los modelos de razonamiento pueden ignorarla.
- top_pnumberopcional
Alternativa a temperature: proporción de la masa de probabilidad para seleccionar tokens.
- stopstring | arrayopcional
Cadenas que detienen la generación.
- toolsarrayopcional
Definiciones de funciones que el modelo puede invocar. El formato es el de OpenAI:
{"type": "function", "function": {...}}. - tool_choicestring | objectopcional
auto,none,requiredo una función específica. - response_formatobjectopcional
{"type": "json_object"}o{"type": "json_schema", ...}para obtener una respuesta estructurada, si el modelo lo admite. - reasoning_effortstringopcional
Profundidad del razonamiento en los modelos de razonamiento:
low,medium,high.
Los demás parámetros de OpenAI se transmiten sin cambios; el desarrollador del modelo determina si ese modelo los admite.
Respuesta
- choices[].messageobject
Respuesta del modelo:
content; cuando se invocan herramientas,tool_calls. - choices[].finish_reasonstring
stop: la respuesta terminó;length: se alcanzómax_tokens(la respuesta sigue siendo completa y se factura por el uso real);tool_calls: el modelo invoca una herramienta. - usageobject
prompt_tokens,completion_tokens,total_tokens: se utilizan para calcular el cargo.