Chat completions
POST
/v1/chat/completionsGenera una respuesta del modelo para una conversación. Admite streaming y entrada multimodal de imagen / audio. Se factura por tokens de entrada y salida.
Cuerpo de la solicitud
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
model | string | Sí | El modelo a usar. Consulta GET /v1/models para ver los modelos disponibles. |
messages | array | Sí | La conversación hasta ahora. Cada elemento tiene un role (system / user / assistant) y content. content puede ser una cadena, o un array de partes para entrada multimodal: text, image_url o input_audio. |
stream | boolean | No | Cuando es true, los tokens se transmiten como server-sent events. Por defecto: false. |
temperature | number | No | Temperatura de muestreo, 0–2. Más alta = más aleatorio. |
top_p | number | No | Masa de probabilidad del muestreo por núcleo (nucleus sampling). |
max_tokens | integer | No | Número máximo de tokens a generar en la respuesta. |
n | integer | No | Cuántas respuestas generar. Por defecto: 1. |
stop | string or array | No | Hasta 4 secuencias donde se detiene la generación. |
modalities | array | No | Modalidades de salida, p. ej. ["text","audio"] para modelos con audio. |
audio | object | No | Configuración de salida de audio cuando modalities incluye audio, p. ej. {voice, format}. |
Ejemplo de solicitud
bash
curl https://api.apexnova-consulting.com/v1/chat/completions \
-H "Authorization: Bearer sk-xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "glm-5.1",
"messages": [{"role": "user", "content": "Hello"}]
}'python
from openai import OpenAI
client = OpenAI(
base_url="https://api.apexnova-consulting.com/v1",
api_key="sk-xxxxxxxx",
)
resp = client.chat.completions.create(
model="glm-5.1",
messages=[{"role": "user", "content": "Hello"}],
)
print(resp.choices[0].message.content)Ejemplo de respuesta
json
{
"id": "chatcmpl-abc123",
"object": "chat.completion",
"created": 1234567890,
"model": "glm-5.1",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Hello! How can I help you today?"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 8,
"completion_tokens": 12,
"total_tokens": 20
}
}Entrada multimodal
Pasa URLs de imagen o audio en base64 dentro del array content de un mensaje:
python
from openai import OpenAI
client = OpenAI(
base_url="https://api.apexnova-consulting.com/v1",
api_key="sk-xxxxxxxx",
)
# Vision: pass an image URL inside the user message content
resp = client.chat.completions.create(
model="glm-5.1",
messages=[{
"role": "user",
"content": [
{"type": "text", "text": "Describe this image in one sentence"},
{"type": "image_url", "image_url": {"url": "https://example.com/photo.jpg"}},
],
}],
)
print(resp.choices[0].message.content)Notas
- Cuando stream es true, la respuesta se transmite como server-sent events; el último evento incluye un objeto usage con el recuento de tokens.
- Un modelo desconocido, o un modelo cuya modalidad no coincide con este endpoint, devuelve 404 model_not_found.