Ir al contenido

Chat (formato OpenAI)

POST https://api.jeimy.ai/v1/chat/completions

Tiene la misma forma que Chat Completions de OpenAI. Cualquier SDK o herramienta hecha para ese formato funciona cambiando la URL base.

Ventana de terminal
curl https://api.jeimy.ai/v1/chat/completions \
-H "Authorization: Bearer $JEIMY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "aguila",
"messages": [
{"role": "system", "content": "Eres un asistente contable. Responde breve."},
{"role": "user", "content": "¿Qué porcentaje es el IGV en Perú?"}
],
"temperature": 0.3,
"max_tokens": 1024
}'
Campo Tipo Notas
model string Obligatorio. colibri, aguila o apu
messages array Obligatorio. Roles system, user, assistant y tool
stream boolean true devuelve la respuesta por partes. Ver Streaming
max_tokens number Por defecto 8192, y ese es también el tope
temperature number Por defecto 0.6
top_p number
stop string o array Secuencias donde se corta la respuesta
seed number
frequency_penalty, presence_penalty number
logit_bias, logprobs, top_logprobs
response_format object {"type": "json_object"} o un esquema JSON
tools, tool_choice, parallel_tool_calls Ver Herramientas
reasoning object Ver Razonamiento
user string Un identificador de tu usuario final

Cualquier otro campo se ignora.

{
"id": "...",
"object": "chat.completion",
"created": 1790000000,
"model": "aguila",
"choices": [
{
"index": 0,
"message": { "role": "assistant", "content": "El IGV en Perú es 18%." },
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 32,
"completion_tokens": 120,
"total_tokens": 152,
"prompt_tokens_details": { "cached_tokens": 0 }
}
}
  • finish_reason: stop (terminó), length (llegó a max_tokens) o tool_calls (pidió una herramienta).
  • usage es lo que se cobra. cached_tokens son tokens de entrada que salieron más baratos por repetirse. Ver Precios.
{
"model": "colibri",
"messages": [{"role": "user", "content": "Dame tres distritos de Lima en JSON: {\"distritos\": [...]}"}],
"response_format": {"type": "json_object"}
}

Con json_object, pide en el mensaje la forma que quieres: el modelo devuelve JSON válido, pero la estructura se la dices tú.