Chat Completions
Cree respuestas de completación de chat. Soporta generación de texto, entrada multimodal, llamada a funciones, respuesta en streaming y más.
Para proyectos nuevos, recomendamos la Responses API. La Responses API separa instructions de input, de modo que las instrucciones del sistema aprovechan Prompt Caching automáticamente, con una mayor tasa de aciertos de caché y menor coste y latencia. Chat Completions sigue contando con soporte a largo plazo; las integraciones existentes no necesitan migrar.
Endpoint
POST https://api.ofox.io/v1/chat/completionsParámetros de solicitud
Formato de Message
interface Message {
role: 'system' | 'user' | 'assistant' | 'tool'
content: string | ContentPart[] // Texto o contenido multimodal
name?: string
tool_calls?: ToolCall[] // Llamadas a herramientas del mensaje assistant
tool_call_id?: string // ID de llamada del mensaje tool
}
// Contenido multimodal
type ContentPart =
| { type: 'text'; text: string }
| { type: 'image_url'; image_url: { url: string; detail?: 'auto' | 'low' | 'high' } }Ejemplo de solicitud
cURL
curl https://api.ofox.io/v1/chat/completions \
-H "Authorization: Bearer $OFOX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "openai/gpt-6.1-sol",
"messages": [
{"role": "system", "content": "Eres un asistente útil."},
{"role": "user", "content": "Explica qué es un API Gateway"}
],
"temperature": 0.7
}'Formato de respuesta
{
"id": "chatcmpl-abc123",
"object": "chat.completion",
"created": 1703123456,
"model": "openai/gpt-6.1-sol",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Un API Gateway es un..."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 25,
"completion_tokens": 150,
"total_tokens": 175
}
}Respuesta en streaming
Active la respuesta en streaming SSE con stream: true:
Python
stream = client.chat.completions.create(
model="openai/gpt-6.1-sol",
messages=[{"role": "user", "content": "Cuéntame una historia"}],
stream=True
)
for chunk in stream:
content = chunk.choices[0].delta.content
if content:
print(content, end="", flush=True)Formato de respuesta en streaming
Cada chunk se envía mediante SSE:
data: {"id":"chatcmpl-abc123","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"Hola"},"finish_reason":null}]}
data: {"id":"chatcmpl-abc123","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":" mundo"},"finish_reason":null}]}
data: {"id":"chatcmpl-abc123","object":"chat.completion.chunk","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
data: [DONE]Entrada multimodal (visión)
Envíe imágenes para que el modelo las analice:
response = client.chat.completions.create(
model="openai/gpt-6.1-sol",
messages=[{
"role": "user",
"content": [
{"type": "text", "text": "¿Qué hay en esta imagen?"},
{"type": "image_url", "image_url": {"url": "https://example.com/image.jpg"}}
]
}]
)Los modelos con capacidad de visión incluyen: openai/gpt-6.1-sol, anthropic/claude-sonnet-5.5, google/gemini-3.8-flash, entre otros.
Consulte la guía de comprensión visual.
Function Calling
Consulte la guía de llamada a funciones.