Chat Completions
Créez des réponses de complétion de chat. Prend en charge la génération de texte, l’entrée multimodale, l’appel de fonctions, la réponse en streaming et plus encore.
Endpoint
POST https://api.ofox.ai/v1/chat/completionsParamètres de requête
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
model | string | ✅ | Identifiant du modèle, ex. openai/gpt-4o |
messages | array | ✅ | Tableau de messages |
temperature | number | — | Température d’échantillonnage 0-2, par défaut 1 |
max_tokens | number | — | Nombre maximum de tokens à générer |
stream | boolean | — | Activer la réponse en streaming |
top_p | number | — | Paramètre d’échantillonnage nucleus |
frequency_penalty | number | — | Pénalité de fréquence -2 à 2 |
presence_penalty | number | — | Pénalité de présence -2 à 2 |
tools | array | — | Définition des outils (Function Calling) |
tool_choice | string/object | — | Stratégie de sélection d’outils |
response_format | object | — | Format de réponse (JSON Mode) |
provider | object | — | Extension OfoxAI : configuration de routage et repli |
Format de Message
interface Message {
role: 'system' | 'user' | 'assistant' | 'tool'
content: string | ContentPart[] // Texte ou contenu multimodal
name?: string
tool_calls?: ToolCall[] // Appels d'outils du message assistant
tool_call_id?: string // ID d'appel du message tool
}
// Contenu multimodal
type ContentPart =
| { type: 'text'; text: string }
| { type: 'image_url'; image_url: { url: string; detail?: 'auto' | 'low' | 'high' } }Exemple de requête
cURL
Terminal
curl https://api.ofox.ai/v1/chat/completions \
-H "Authorization: Bearer $OFOX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "openai/gpt-4o",
"messages": [
{"role": "system", "content": "Vous êtes un assistant utile."},
{"role": "user", "content": "Expliquez ce qu'est un API Gateway"}
],
"temperature": 0.7
}'Format de réponse
{
"id": "chatcmpl-abc123",
"object": "chat.completion",
"created": 1703123456,
"model": "openai/gpt-4o",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Un API Gateway est un..."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 25,
"completion_tokens": 150,
"total_tokens": 175
}
}Réponse en streaming
Activez la réponse en streaming SSE avec stream: true :
Python
stream.py
stream = client.chat.completions.create(
model="openai/gpt-4o",
messages=[{"role": "user", "content": "Racontez-moi une histoire"}],
stream=True
)
for chunk in stream:
content = chunk.choices[0].delta.content
if content:
print(content, end="", flush=True)Format de réponse en streaming
Chaque chunk est envoyé via SSE :
data: {"id":"chatcmpl-abc123","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"Bonjour"},"finish_reason":null}]}
data: {"id":"chatcmpl-abc123","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":" monde"},"finish_reason":null}]}
data: {"id":"chatcmpl-abc123","object":"chat.completion.chunk","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
data: [DONE]Entrée multimodale (vision)
Envoyez des images pour que le modèle les analyse :
response = client.chat.completions.create(
model="openai/gpt-4o",
messages=[{
"role": "user",
"content": [
{"type": "text", "text": "Qu'y a-t-il dans cette image ?"},
{"type": "image_url", "image_url": {"url": "https://example.com/image.jpg"}}
]
}]
)Les modèles avec capacité de vision incluent : openai/gpt-4o, anthropic/claude-sonnet-4.5, google/gemini-3-flash-preview, entre autres.
Consultez le guide de compréhension visuelle.
Function Calling
Consultez le guide d’appel de fonctions.
Last updated on