Saltar al contenido

Chat Completions

POST /v1/chat/completions es el endpoint de texto compatible con OpenAI, y el que hablan la mayoría de los SDK, frameworks y herramientas. Todos los modelos de texto del catálogo responden en él —incluidos Claude, Gemini y los modelos open-weight—, así que una sola estructura de request sirve para todos.

Un request

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api.inferray.com/v1",
  apiKey: process.env.INFERRAY_API_KEY,
});

const completion = await client.chat.completions.create({
  model: "claude-sonnet-4-6",
  messages: [
    { role: "system", content: "You are a concise assistant." },
    { role: "user", content: "Name three uses for a quartz crystal." },
  ],
  max_tokens: 300,
});

console.log(completion.choices[0].message.content);
import os
from openai import OpenAI

client = OpenAI(base_url="https://api.inferray.com/v1", api_key=os.environ["INFERRAY_API_KEY"])

completion = client.chat.completions.create(
    model="claude-sonnet-4-6",
    messages=[
        {"role": "system", "content": "You are a concise assistant."},
        {"role": "user", "content": "Name three uses for a quartz crystal."},
    ],
    max_tokens=300,
)
print(completion.choices[0].message.content)

Messages

messages es la conversación completa, de la más antigua a la más reciente. El endpoint no guarda estado entre llamadas, así que envía cada vez el historial que quieres que vea el modelo.

RolÚsalo para
system o developerInstrucciones que enmarcan la conversación.
userLo que dijo la persona. content es un string o un array de partes para imágenes y documentos.
assistantLas respuestas anteriores del modelo, incluidas las tool_calls que haya hecho.
toolEl resultado de una llamada a herramienta, con el tool_call_id correspondiente.

Parámetros

ParámetroQué hace
modelObligatorio. Un ID de modelo del catálogo.
messagesObligatorio. La conversación.
max_tokens / max_completion_tokensLímite de la longitud de la respuesta. Mantenlo dentro del max_output_tokens del modelo.
temperature, top_pMuestreo. Cuanto más bajo, más determinista. Algunos modelos de razonamiento los ignoran o los rechazan.
stopUno o más strings que terminan la generación.
streamtrue para recibir los tokens a medida que se generan; consulta streaming.
tools, tool_choiceFunciones que el modelo puede llamar; consulta llamadas a herramientas.
response_formatModo JSON o un esquema JSON; consulta salidas estructuradas.
reasoning_effortCuánto piensa un modelo de razonamiento; consulta razonamiento.

Los parámetros se pasan al modelo tal como los envías. Un modelo que no admite alguno puede ignorarlo o devolver un 400 que lo indique; la página del modelo muestra lo que admite.

La respuesta

{
  "id": "chatcmpl-8f2c...",
  "object": "chat.completion",
  "created": 1767225600,
  "model": "claude-sonnet-4-6",
  "choices": [
    {
      "index": 0,
      "message": { "role": "assistant", "content": "1. Oscillators in watches..." },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 31,
    "completion_tokens": 64,
    "total_tokens": 95,
    "prompt_tokens_details": { "cached_tokens": 0 },
    "completion_tokens_details": { "reasoning_tokens": 0 },
    "cost": 0.001053,
    "cost_details": { "input_cost": 0.000093, "output_cost": 0.00096, "total_cost": 0.001053 }
  }
}

finish_reason es stop cuando el modelo terminó, length cuando alcanzó max_tokens, tool_calls cuando quiere el resultado de una herramienta y content_filter cuando el modelo se negó. model es siempre el ID que pediste.

usage es aquello por lo que se factura la solicitud: tokens de entrada, tokens de salida y, cuando corresponde, tokens en caché y de razonamiento. usage.cost es el importe cobrado por esta solicitud en dólares estadounidenses, con tu descuento ya aplicado, y cost_details lo desglosa. Consulta uso y costos para ver los campos de cada endpoint.

Otros SDK y lenguajes

Todo lo que hable el formato OpenAI funciona con la URL base https://api.inferray.com/v1: los SDK oficiales de OpenAI en todos los lenguajes, el Vercel AI SDK, LangChain, LlamaIndex y HTTP directo.