Skip to Content
APIProtocole compatible OpenAIChat Completions

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/completions

Paramètres de requête

ParamètreTypeObligatoireDescription
modelstringIdentifiant du modèle, ex. openai/gpt-4o
messagesarrayTableau de messages
temperaturenumberTempérature d’échantillonnage 0-2, par défaut 1
max_tokensnumberNombre maximum de tokens à générer
streambooleanActiver la réponse en streaming
top_pnumberParamètre d’échantillonnage nucleus
frequency_penaltynumberPénalité de fréquence -2 à 2
presence_penaltynumberPénalité de présence -2 à 2
toolsarrayDéfinition des outils (Function Calling)
tool_choicestring/objectStratégie de sélection d’outils
response_formatobjectFormat de réponse (JSON Mode)
providerobjectExtension 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

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 :

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