Apexnova Consulting

Chat completions

POST/v1/chat/completions

Genera 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

CampoTipoRequeridoDescripción
modelstringEl modelo a usar. Consulta GET /v1/models para ver los modelos disponibles.
messagesarrayLa 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.
streambooleanNoCuando es true, los tokens se transmiten como server-sent events. Por defecto: false.
temperaturenumberNoTemperatura de muestreo, 0–2. Más alta = más aleatorio.
top_pnumberNoMasa de probabilidad del muestreo por núcleo (nucleus sampling).
max_tokensintegerNoNúmero máximo de tokens a generar en la respuesta.
nintegerNoCuántas respuestas generar. Por defecto: 1.
stopstring or arrayNoHasta 4 secuencias donde se detiene la generación.
modalitiesarrayNoModalidades de salida, p. ej. ["text","audio"] para modelos con audio.
audioobjectNoConfiguració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.