Chat Completions

La API de Chat Completions te permite generar respuestas conversacionales a partir de los modelos de lenguaje de Nextbit. Nuestra API es totalmente compatible con el formato de Chat Completions de OpenAI.

El modelo de Chat Completions

El modelo de Chat Completions contiene toda la información sobre tu conversación, incluyendo mensajes, prompts del sistema y parámetros de generación.

Propiedades

  • Name
    model
    Type
    string
    Description

    El ID del modelo a usar. Consulta modelos disponibles para la lista completa con precios.

  • Name
    messages
    Type
    array
    Description

    Un array de objetos de mensaje que representan el historial de conversación. Cada mensaje debe tener un role (system, user o assistant) y content.

  • Name
    temperature
    Type
    number
    Description

    Controla la aleatoriedad en la salida. Valores más altos (ej., 1.5) hacen la salida más aleatoria, valores más bajos (ej., 0.5) la hacen más enfocada. Rango: 0-2, predeterminado: 1.

  • Name
    max_tokens
    Type
    integer
    Description

    El número máximo de tokens a generar en la Completion.

  • Name
    stream
    Type
    boolean
    Description

    Si se establece a true, los deltas parciales del mensaje se enviarán como eventos del servidor. Predeterminado: false.

  • Name
    top_p
    Type
    number
    Description

    Una alternativa al muestreo por temperatura. Rango: 0-1, predeterminado: 1.

  • Name
    presence_penalty
    Type
    number
    Description

    Número entre -2.0 y 2.0. Valores positivos penalizan tokens nuevos basándose en si aparecen en el texto hasta ahora.

  • Name
    frequency_penalty
    Type
    number
    Description

    Número entre -2.0 y 2.0. Valores positivos penalizan tokens nuevos basándose en su frecuencia existente en el texto.


POST/v1/chat/completions

Crear Chat Completion

Este endpoint te permite crear una Chat Completion usando uno de nuestros modelos disponibles.

Atributos requeridos

  • Name
    model
    Type
    string
    Description

    El ID del modelo a usar para la Completion.

  • Name
    messages
    Type
    array
    Description

    Array de objetos de mensaje con role y content.

Atributos opcionales

  • Name
    temperature
    Type
    number
    Description

    Temperatura de muestreo (0-2). Predeterminado: 1.

  • Name
    max_tokens
    Type
    integer
    Description

    Máximo de tokens a generar.

  • Name
    stream
    Type
    boolean
    Description

    Habilitar respuestas en streaming. Predeterminado: false.

Solicitud

POST
/v1/chat/completions
from openai import OpenAI

client = OpenAI(
    base_url="https://api.nextbit256.com/v1",
    api_key="tu-clave-api"
)

response = client.chat.completions.create(
    model="llama3.3:70b",
    messages=[
        {"role": "system", "content": "Eres un asistente útil."},
        {"role": "user", "content": "¿Cuál es la capital de España?"}
    ]
)

print(response.choices[0].message.content)

Respuesta

{
  "id": "chatcmpl-6ff64705f50d43cbbab7cd03250e9382",
  "object": "chat.completion",
  "created": 1742470129,
  "model": "llama3.3:70b",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "La capital de España es Madrid."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 20,
    "completion_tokens": 8,
    "total_tokens": 28
  }
}

POST/v1/chat/completions

Streaming

Para una mejor experiencia de usuario, puedes transmitir la respuesta del modelo token por token. Establece stream: true en tu solicitud para habilitar el streaming.

La respuesta se enviará como eventos del servidor (SSE), con cada evento conteniendo un fragmento de la Completion.

Solicitud

POST
/v1/chat/completions
from openai import OpenAI

client = OpenAI(
    base_url="https://api.nextbit256.com/v1",
    api_key="tu-clave-api"
)

stream = client.chat.completions.create(
    model="llama3.3:70b",
    messages=[
        {"role": "user", "content": "Cuéntame sobre San Francisco"}
    ],
    stream=True
)

for chunk in stream:
    if chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)

Was this page helpful?