Finalización de chat
Estructura de solicitud y respuesta, streaming y los endpoints equivalentes en los protocolos Anthropic y Gemini.
La finalización de chat es el endpoint más usado: envías una lista de mensajes al modelo y recibes la respuesta generada. La entrada principal de la plataforma es el protocolo compatible con OpenAI; los protocolos Anthropic y Gemini son equivalentes isomorfos.
Estructura de la solicitud (compatible con OpenAI)
POST {base}/chat/completions — autenticación en Autenticación:
{
"model": "your-model",
"messages": [
{"role": "system", "content": "You are a support assistant."},
{"role": "user", "content": "Where is my order?"},
{"role": "assistant", "content": "Sure, may I have the order number?"},
{"role": "user", "content": "A1024"}
],
"temperature": 0.7,
"max_tokens": 1024,
"stream": false
}
messageses el historial ordenado de la conversación;roleessystem/user/assistant. En conversaciones de varios turnos, el cliente concatena todo el historial y lo reenvía cada vez;- Un
temperaturemás alto produce resultados más variados (habitualmente entre 0 y 1);max_tokenslimita la longitud de la respuesta; - Streaming: con
"stream": truela respuesta se envía de forma incremental por SSE (choices[0].delta), ideal para mostrar el texto a medida que se genera. Con los SDK oficiales: pasastream=Truee itera.
Estructura de la respuesta
Campos clave de una respuesta sin streaming:
{
"choices": [
{
"message": {"role": "assistant", "content": "..."},
"finish_reason": "stop"
}
],
"usage": {"prompt_tokens": 58, "completion_tokens": 132, "total_tokens": 190}
}
choices[0].message.contentcontiene la respuesta;finish_reasoncon valorstopsignifica que terminó de forma natural, ylengthque se cortó pormax_tokens;usagees el consumo de tokens de esta llamada: tanto la facturación como la página «Uso» se basan en él.
Endpoints equivalentes en otros protocolos
- Anthropic:
POST {base}/v1/messages— cambian los nombres de los campos (max_tokenses obligatorio, la respuesta vive en el arraycontent), pero la semántica es idéntica; - Gemini:
POST {base}/v1beta/models/{model}:generateContent— los mensajes van en el arraycontents.
Los tres protocolos son isomorfos; migrar consiste sobre todo en renombrar campos. Lo práctico es usar el SDK oficial correspondiente (openai / @anthropic-ai/sdk / @google/genai) con base_url apuntando a la plataforma.

