Format de discussion OpenAI (achèvements de discussion)
Documentation officielle
📝Présentation
Étant donné une liste de messages comprenant une conversation, le modèle renverra une réponse. Pour les directives connexes, veuillez vous référer au site officiel d'OpenAI: Chat Completions
💡 Exemples de requêtes
Chat textuel de base ✅
curl https://88api.ai/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $API_KEY" \
-d '{
"model": "gpt-4.1",
"messages": [
{
"role": "developer",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
]
}'Response Example:
{
"id": "chatcmpl-B9MBs8CjcvOU2jLn4n570S5qMJKcT",
"object": "chat.completion",
"created": 1741569952,
"model": "gpt-4.1-2025-04-14",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Hello! How can I help you?",
"refusal": null,
"annotations": []
},
"logprobs": null,
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 19,
"completion_tokens": 10,
"total_tokens": 29,
"prompt_tokens_details": {
"cached_tokens": 0,
"audio_tokens": 0
},
"completion_tokens_details": {
"reasoning_tokens": 0,
"audio_tokens": 0,
"accepted_prediction_tokens": 0,
"rejected_prediction_tokens": 0
}
},
"service_tier": "default"
}Chat d'analyse d'images ✅
curl https://88api.ai/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $API_KEY" \
-d '{
"model": "gpt-4.1",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What's in this image?"
},
{
"type": "image_url",
"image_url": {
"url": "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg"
}
}
]
}
],
"max_tokens": 300
}'Response Example:
{
"id": "chatcmpl-B9MHDbslfkBeAs8l4bebGdFOJ6PeG",
"object": "chat.completion",
"created": 1741570283,
"model": "gpt-4.1-2025-04-14",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "The image shows a wooden boardwalk path through dense green grass or meadow. The sky is bright blue with scattered clouds, creating a peaceful and serene atmosphere for the entire scene. Trees and shrubs can be seen in the background.",
"refusal": null,
"annotations": []
},
"logprobs": null,
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 1117,
"completion_tokens": 46,
"total_tokens": 1163,
"prompt_tokens_details": {
"cached_tokens": 0,
"audio_tokens": 0
},
"completion_tokens_details": {
"reasoning_tokens": 0,
"audio_tokens": 0,
"accepted_prediction_tokens": 0,
"rejected_prediction_tokens": 0
}
},
"service_tier": "default",
"system_fingerprint": "fp_fc9f1d7035"
}Réponse en streaming ✅
curl https://88api.ai/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $API_KEY" \
-d '{
"model": "gpt-4.1",
"messages": [
{
"role": "developer",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
],
"stream": true
}'Streaming Response Example:
{"id":"chatcmpl-123","object":"chat.completion.chunk","created":1694268190,"model":"gpt-4o-mini", "system_fingerprint": "fp_44709d6fcb", "choices":[{"index":0,"delta":{"role":"assistant","content":""},"logprobs":null,"finish_reason":null}]}
{"id":"chatcmpl-123","object":"chat.completion.chunk","created":1694268190,"model":"gpt-4o-mini", "system_fingerprint": "fp_44709d6fcb", "choices":[{"index":0,"delta":{"content":"Hello"},"logprobs":null,"finish_reason":null}]}
// ... more data chunks ...
{"id":"chatcmpl-123","object":"chat.completion.chunk","created":1694268190,"model":"gpt-4o-mini", "system_fingerprint": "fp_44709d6fcb", "choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}]}Appel de fonction ✅
curl https://88api.ai/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $API_KEY" \
-d '{
"model": "gpt-4.1",
"messages": [
{
"role": "user",
"content": "What's the weather like in Boston today?"
}
],
"tools": [
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "Get the current weather for a specified location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "City and state, e.g., San Francisco, CA"
},
"unit": {
"type": "string",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location"]
}
}
}
],
"tool_choice": "auto"
}'Response Example:
{
"id": "chatcmpl-abc123",
"object": "chat.completion",
"created": 1699896916,
"model": "gpt-4o-mini",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": null,
"tool_calls": [
{
"id": "call_abc123",
"type": "function",
"function": {
"name": "get_current_weather",
"arguments": "{\n\"location\": \"Boston, MA\"\n}"
}
}
]
},
"logprobs": null,
"finish_reason": "tool_calls"
}
],
"usage": {
"prompt_tokens": 82,
"completion_tokens": 17,
"total_tokens": 99,
"completion_tokens_details": {
"reasoning_tokens": 0,
"accepted_prediction_tokens": 0,
"rejected_prediction_tokens": 0
}
}
}Demande de logprobs ✅
curl https://88api.ai/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $API_KEY" \
-d '{
"model": "gpt-4.1",
"messages": [
{
"role": "user",
"content": "Hello!"
}
],
"logprobs": true,
"top_logprobs": 2
}'Response Example:
{
"id": "chatcmpl-123",
"object": "chat.completion",
"created": 1702685778,
"model": "gpt-4o-mini",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Hello! How can I help you?"
},
"logprobs": {
"content": [
{
"token": "Hello",
"logprob": -0.31725305,
"bytes": [72, 101, 108, 108, 111],
"top_logprobs": [
{
"token": "Hello",
"logprob": -0.31725305,
"bytes": [72, 101, 108, 108, 111]
},
{
"token": "Hi",
"logprob": -1.3190403,
"bytes": [72, 105]
}
]
},
{
"token": "!",
"logprob": -0.02380986,
"bytes": [33],
"top_logprobs": [
{
"token": "!",
"logprob": -0.02380986,
"bytes": [33]
},
{
"token": " there",
"logprob": -3.787621,
"bytes": [32, 116, 104, 101, 114, 101]
}
]
},
{
"token": " How",
"logprob": -0.000054669687,
"bytes": [32, 72, 111, 119],
"top_logprobs": [
{
"token": " How",
"logprob": -0.000054669687,
"bytes": [32, 72, 111, 119]
},
{
"token": "`<|end|>`",
"logprob": -10.953937,
"bytes": null
}
]
},
{
"token": " can",
"logprob": -0.015801601,
"bytes": [32, 99, 97, 110],
"top_logprobs": [
{
"token": " can",
"logprob": -0.015801601,
"bytes": [32, 99, 97, 110]
},
{
"token": " may",
"logprob": -4.161023,
"bytes": [32, 109, 97, 121]
}
]
},
{
"token": " I",
"logprob": -3.7697225e-6,
"bytes": [32, 73],
"top_logprobs": [
{
"token": " I",
"logprob": -3.7697225e-6,
"bytes": [32, 73]
},
{
"token": " assist",
"logprob": -13.596657,
"bytes": [32, 97, 115, 115, 105, 115, 116]
}
]
},
{
"token": " assist",
"logprob": -0.04571125,
"bytes": [32, 97, 115, 115, 105, 115, 116],
"top_logprobs": [
{
"token": " assist",
"logprob": -0.04571125,
"bytes": [32, 97, 115, 115, 105, 115, 116]
},
{
"token": " help",
"logprob": -3.1089056,
"bytes": [32, 104, 101, 108, 112]
}
]
},
{
"token": " you",
"logprob": -5.4385737e-6,
"bytes": [32, 121, 111, 117],
"top_logprobs": [
{
"token": " you",
"logprob": -5.4385737e-6,
"bytes": [32, 121, 111, 117]
},
{
"token": " today",
"logprob": -12.807695,
"bytes": [32, 116, 111, 100, 97, 121]
}
]
},
{
"token": " today",
"logprob": -0.0040071653,
"bytes": [32, 116, 111, 100, 97, 121],
"top_logprobs": [
{
"token": " today",
"logprob": -0.0040071653,
"bytes": [32, 116, 111, 100, 97, 121]
},
{
"token": "?",
"logprob": -5.5247097,
"bytes": [63]
}
]
},
{
"token": "?",
"logprob": -0.0008108172,
"bytes": [63],
"top_logprobs": [
{
"token": "?",
"logprob": -0.0008108172,
"bytes": [63]
},
{
"token": "?\n",
"logprob": -7.184561,
"bytes": [63, 10]
}
]
}
]
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 9,
"completion_tokens": 9,
"total_tokens": 18,
"completion_tokens_details": {
"reasoning_tokens": 0,
"accepted_prediction_tokens": 0,
"rejected_prediction_tokens": 0
}
},
"system_fingerprint": null
}📮 Demande
Point de terminaison
POST /v1/chat/completionsCréez un modèle de réponse pour une conversation de chat donnée. Pour plus de détails, veuillez vous référer aux guides de génération de texte, visuels et audio.
Méthode d'authentification
Incluez les éléments suivants dans les en-têtes de demande pour l'authentification par clé API:
Authorization: Bearer $API_KEYOù $API_KEY est votre clé API. Vous pouvez trouver ou générer votre clé API sur la page Clés API de la plateforme OpenAI.
Paramètres du corps de la requête
messages
- Type : Tableau
- Obligatoire : Oui
La liste des messages comprenant la conversation jusqu'à présent. Selon le modèle utilisé, différents types de messages (formulaires) sont pris en charge, tels que le texte, l'image et l'audio.
| Type de message | Descriptif |
|---|---|
| Message du développeur | Instructions du développeur, le modèle doit suivre ces instructions quel que soit le message envoyé par l'utilisateur. Dans les modèles o1 et les versions plus récentes, les messages du développeur remplacent les messages système précédents. |
| Message système | Instructions du développeur, le modèle doit suivre ces instructions quel que soit le message envoyé par l'utilisateur. Dans les modèles o1 et les versions plus récentes, veuillez plutôt utiliser les messages du développeur. |
| Message utilisateur | Messages envoyés par l'utilisateur du terminal, contenant des invites ou des informations contextuelles supplémentaires. |
| Message de l'assistant | Messages envoyés par le modèle en réponse aux messages des utilisateurs. |
| Message de l'outil | Contenu d'un message d'outil. |
| Message de fonction | Obsolète. |
Developer message Properties:
| Propriété | Tapez | Obligatoire | Descriptif |
|---|---|---|---|
role | Chaîne | Oui | Le rôle de l'auteur du message, ici « développeur ». |
content | Chaîne ou tableau | Oui | Le contenu du message du développeur. Il peut s'agir d'un contenu textuel (chaîne) ou d'un tableau de parties de contenu. |
name | Chaîne | Non | Un nom facultatif pour le participant. Fournit des informations au modèle pour distinguer les participants ayant le même rôle. |
System message Properties:
| Propriété | Tapez | Obligatoire | Descriptif |
|---|---|---|---|
role | Chaîne | Oui | Le rôle de l'auteur du message, ici « système ». |
content | Chaîne ou tableau | Oui | Le contenu du message système. Il peut s'agir d'un contenu textuel (chaîne) ou d'un tableau de parties de contenu. |
name | Chaîne | Non | Un nom facultatif pour le participant. Fournit des informations au modèle pour distinguer les participants ayant le même rôle. |
User message Properties:
| Propriété | Tapez | Obligatoire | Descriptif |
|---|---|---|---|
role | Chaîne | Oui | Le rôle de l'auteur du message, ici « utilisateur ». |
content | Chaîne ou tableau | Oui | Le contenu du message utilisateur. Il peut s'agir d'un contenu textuel (chaîne) ou d'un tableau de parties de contenu. |
name | Chaîne | Non | Un nom facultatif pour le participant. Fournit des informations au modèle pour distinguer les participants ayant le même rôle. |
Content Part Types:
| Type de partie de contenu | Descriptif | Peut être utilisé pour |
|---|---|---|
| Partie du contenu texte | Saisie de texte. | Tous types de messages |
| Partie du contenu de l'image | Entrée d'images. | Messages des utilisateurs |
| Partie du contenu audio | Entrée audio. | Messages des utilisateurs |
| Partie du contenu du fichier | Entrée de fichier, utilisée pour la génération de texte. | Messages des utilisateurs |
| Partie de contenu de refus | Messages de rejet générés par le modèle. | Messages de l'assistant |
Text Content Part Properties:
| Propriété | Tapez | Obligatoire | Descriptif |
|---|---|---|---|
text | Chaîne | Oui | Contenu du texte. |
type | Chaîne | Oui | Le type de partie de contenu. |
Image Content Part Properties:
| Propriété | Tapez | Obligatoire | Descriptif |
|---|---|---|---|
image_url | Objet | Oui | Contient une URL d’image ou des données d’image codées en base64. |
type | Chaîne | Oui | Le type de partie de contenu. |
Image URL Object Properties:
| Propriété | Tapez | Obligatoire | Descriptif |
|---|---|---|---|
url | Chaîne | Oui | L'URL de l'image ou les données d'image encodées en base64. |
detail | Chaîne | Non | Spécifie le niveau de détail de l'image. La valeur par défaut est "auto". |
Audio Content Part Properties:
| Propriété | Tapez | Obligatoire | Descriptif |
|---|---|---|---|
input_audio | Objet | Oui | Contient un objet avec des données audio. |
type | Chaîne | Oui | Le type de partie de contenu. Toujours "input_audio". |
Audio Input Object Properties:
| Propriété | Tapez | Obligatoire | Descriptif |
|---|---|---|---|
data | Chaîne | Oui | Données audio codées en base64. |
format | Chaîne | Oui | Le format des données audio codées. Prend actuellement en charge "wav" et "mp3". |
File Content Part Properties:
| Propriété | Tapez | Obligatoire | Descriptif |
|---|---|---|---|
file | Objet | Oui | Contient un objet avec des données de fichier. |
type | Chaîne | Oui | Le type de partie de contenu. Toujours "archiver". |
File Object Properties:
| Propriété | Tapez | Obligatoire | Descriptif |
|---|---|---|---|
file_data | Chaîne | Non | Données de fichier codées en base64, utilisées pour transmettre le fichier sous forme de chaîne au modèle. |
file_id | Chaîne | Non | L'ID du fichier téléchargé, utilisé comme entrée. |
filename | Chaîne | Non | Le nom de fichier, utilisé pour transmettre le fichier sous forme de chaîne au modèle. |
Assistant message Properties:
| Propriété | Tapez | Obligatoire | Descriptif |
|---|---|---|---|
role | Chaîne | Oui | Le rôle de l'auteur du message, ici « assistant ». |
content | Chaîne ou tableau | Non | Le contenu du message de l'assistant. Obligatoire sauf si tool_calls ou function_call est spécifié. |
name | Chaîne | Non | Un nom facultatif pour le participant. Fournit des informations au modèle pour distinguer les participants ayant le même rôle. |
audio | Objet ou nul | Non | Données sur la réponse audio précédente du modèle. |
function_call | Objet ou nul | Non | Obsolète, remplacé par tool_calls. Le nom et les paramètres de la fonction à appeler, générés par le modèle. |
tool_calls | Tableau | Non | Appels d'outils générés par le modèle, tels que les appels de fonction. |
refusal | Chaîne ou null | Non | Le message de refus de l'assistant. |
Tool message Properties:
| Propriété | Tapez | Obligatoire | Descriptif |
|---|---|---|---|
role | Chaîne | Oui | Le rôle de l'auteur du message, ici « outil ». |
content | Chaîne ou tableau | Oui | Le contenu du message de l'outil. |
tool_call_id | Chaîne | Oui | Appel d’outil associé à cette réponse au message. |
Function message Properties (Deprecated):
| Propriété | Tapez | Obligatoire | Descriptif |
|---|---|---|---|
role | Chaîne | Oui | Le rôle de l'auteur du message, ici « fonction ». |
content | Chaîne ou null | Oui | Le contenu du message de fonction. |
name | Chaîne | Oui | Le nom de la fonction à appeler. |
model
- Type : Chaîne
- Obligatoire : Oui
L'ID du modèle à utiliser. Pour plus de détails sur les modèles compatibles avec l'API Chat, veuillez vous référer au tableau de compatibilité des points de terminaison des modèles.
store
- Type: booléen ou nul
- Obligatoire: Non
- Par défaut: faux
Que ce soit pour stocker le résultat de cette demande de complétion de chat pour nos produits de distillation ou d'évaluation de modèles.
reasoning_effort
- Type: chaîne ou null
- Obligatoire: Non
- Par défaut: moyen
- Uniquement applicable aux modèles de la série o
Contraint l’effort de raisonnement du modèle de raisonnement. Les valeurs actuellement prises en charge sont low, medium et high. Réduire l’effort de raisonnement peut accélérer les réponses et réduire le nombre de jetons utilisés pour raisonner dans la réponse.
metadata
- Type : carte
- Obligatoire: Non
Une collection de 16 paires clé-valeur pouvant être attachées à l’objet. Ceci est utile pour stocker d'autres informations sur l'objet dans un format structuré et interroger l'objet via l'API ou le tableau de bord.
Les clés sont des chaînes d'une longueur maximale de 64 caractères. Les valeurs sont des chaînes d’une longueur maximale de 512 caractères.
modalities
- Type : Tableau ou null
- Obligatoire: Non
Types de sortie que vous souhaitez que le modèle génère pour cette requête. La plupart des modèles peuvent générer du texte, qui est la valeur par défaut: ["text"]
Le modèle peut également être utilisé pour générer de l'audio. Pour demander au modèle de générer simultanément des réponses textuelles et audio, vous pouvez utiliser: ["text", "audio"]
prediction
- Type : Objet
- Obligatoire: Non
Configuration pour la sortie prévue, lorsque vous connaissez à l'avance la majeure partie du contenu de la réponse du modèle, cela peut améliorer considérablement le temps de réponse. Ceci est plus courant lorsque vous apportez uniquement de petites modifications à un fichier.
Possible Types:
| Tapez | Descriptif |
|---|---|
| Contenu statique | Contenu de sortie prédit statique, par exemple, le contenu texte d'un fichier avec de petites modifications en cours de régénération. |
Static Content Properties:
| Propriété | Tapez | Obligatoire | Descriptif |
|---|---|---|---|
content | Chaîne ou tableau | Oui | Le contenu qui doit correspondre lors de la génération de la réponse du modèle. Si les jetons générés correspondent à ce contenu, la réponse entière du modèle peut être renvoyée plus rapidement. |
type | Chaîne | Oui | Le type de contenu prédit à fournir. Actuellement, le type est toujours « contenu ». |
Possible Content Types:
-
Contenu texte (chaîne) - Contenu pour la sortie prévue. Il s'agit généralement du texte du fichier que vous régénérez, avec seulement de petites modifications.
-
Content Part Array (Array) - Un tableau de parties de contenu avec des types définis. Les options prises en charge varient en fonction du modèle utilisé pour générer la réponse. Peut inclure la saisie de texte.
Content Part Array Properties:
| Propriété | Tapez | Obligatoire | Descriptif |
|---|---|---|---|
text | Chaîne | Oui | Contenu du texte. |
type | Chaîne | Oui | Le type de partie de contenu. |
audio
- Type: Objet ou null
- Obligatoire: Non
Paramètres pour la sortie audio. Obligatoire lors de la demande de sortie audio avec modalities: ["audio"].
| Propriété | Tapez | Obligatoire | Descriptif |
|---|---|---|---|
format | Chaîne | Oui | Spécifie le format audio de sortie. Doit être l'un des suivants: wav, mp3, flac, opus ou pcm16. |
voice | Chaîne | Oui | La voix utilisée par le modèle pour la réponse. Les voix prises en charge incluent: alliage, cendre, ballade, corail, écho, fable, nova, onyx, sauge et miroitement. |
temperature
- Type: Nombre ou nul
- Obligatoire: Non
- Par défaut : 1
La température d'échantillonnage à utiliser, entre 0 et 2. Des valeurs plus élevées (par exemple, 0,8) rendent la sortie plus aléatoire, tandis que des valeurs plus faibles (par exemple, 0,2) la rendent plus concentrée et déterministe. Nous recommandons généralement de modifier cette valeur ou top_p, mais pas les deux.
top_p
- Type: Nombre ou nul
- Obligatoire: Non
- Par défaut : 1
Une alternative à la température d'échantillonnage, appelée échantillonnage de noyau, où le modèle prend en compte les résultats des jetons avec une masse de probabilité top_p. Par conséquent, 0,1 signifie uniquement considérer les jetons avec la masse de probabilité la plus élevée de 10 %.
Nous recommandons généralement de modifier cette valeur ou temperature, mais pas les deux.
n
- Type: Entier ou nul
- Obligatoire: Non
- Par défaut : 1
Combien de discussions terminées générer pour chaque message d’entrée. Notez que vous serez facturé pour le nombre total de jetons générés pour tous les choix. Garder n à 1 peut minimiser les coûts.
stop
- Type: Chaîne/Tableau/null
- Obligatoire: Non
- Par défaut: nul
- Non pris en charge par les derniers modèles d'inférence et .o3, o4-mini
L'API cessera de générer plus de jetons pour un maximum de 4 séquences. Le texte renvoyé n'inclura pas la séquence d'arrêt.
max_tokens
- Type: Entier ou nul
- Obligatoire: Non
Le nombre maximum de jetons pouvant être générés lors de la fin d'une discussion. Cette valeur peut être utilisée pour contrôler le coût du texte généré via l'API.
Cette valeur est désormais obsolète, remplacée par max_completion_tokens, et est incompatible avec les modèles de la série .o1.
max_completion_tokens
- Type: Entier ou nul
- Obligatoire: Non
Limite supérieure des jetons pouvant être générés lors d'une complétion, y compris les jetons de sortie visibles et les jetons de raisonnement.
presence_penalty
- Type: Nombre ou nul
- Obligatoire: Non
- Par défaut : 0
Un nombre compris entre -2,0 et 2,0. Les valeurs positives pénalisent les nouveaux jetons en fonction de leur occurrence jusqu'à présent dans le texte, augmentant ainsi la probabilité du modèle de discuter de nouveaux sujets.
frequency_penalty
- Type: Nombre ou nul
- Obligatoire: Non
- Par défaut : 0
Un nombre compris entre -2,0 et 2,0. Les valeurs positives pénalisent les nouveaux jetons en fonction de leur fréquence existante jusqu'à présent dans le texte, réduisant ainsi la probabilité du modèle de répéter la même ligne mot pour mot.
logit_bias
- Type : carte
- Obligatoire: Non
- Par défaut: nul
Modifie la probabilité que les jetons spécifiés apparaissent dans la complétion.
Accepte un objet JSON qui mappe les jetons (spécifiés par les ID de jeton dans le tokenizer) aux valeurs de biais associées comprises entre -100 et 100. Mathématiquement, le biais est ajouté aux logits du modèle avant l'échantillonnage. L'effet exact peut varier selon le modèle, mais les valeurs comprises entre -1 et 1 devraient réduire ou augmenter la probabilité de sélection ; des valeurs telles que -100 ou 100 devraient entraîner l'interdiction ou la sélection exclusive des jetons concernés.
logprobs
- Type: booléen ou nul
- Obligatoire: Non
- Par défaut: faux
S'il faut renvoyer les probabilités de journal pour les jetons de sortie. Si vrai, renvoie les probabilités du journal pour chaque jeton de sortie dans message.content.
user
- Type : Chaîne
- Obligatoire: Non
Un identifiant unique pour l'utilisateur final, qui aide OpenAI à surveiller et à détecter les comportements abusifs. En savoir plus.
service_tier
- Type: chaîne ou null
- Obligatoire: Non
- Par défaut: auto
Spécifie le niveau de latence pour le traitement de la demande. Ce paramètre est pertinent pour les clients abonnés au service de niveau Scale:
- S'il est défini sur « auto » et que le projet est activé pour le niveau d'échelle, le système utilisera les crédits du niveau d'échelle jusqu'à ce qu'ils soient épuisés.
- Si la valeur est « auto » et que le projet n'est pas activé pour le niveau Scale, la demande sera traitée en utilisant le niveau de service par défaut, avec un SLA de temps de fonctionnement normal inférieur et aucune garantie de latence.
- Si la valeur est « par défaut », la demande sera traitée en utilisant le niveau de service par défaut, avec un SLA de temps de fonctionnement normal inférieur et aucune garantie de latence.
- Si la valeur est « flex », la demande sera traitée à l'aide du niveau de service Flex Processing. Pour plus de détails, veuillez vous référer à la documentation.
- Lorsqu'il n'est pas défini, le comportement par défaut est « auto »
- Lorsque ce paramètre est défini, le corps de la réponse inclura le service_tier utilisé
stream_options
- Type: Objet ou null
- Obligatoire: Non
- Par défaut: nul
Options de diffusion des réponses. Utilisé uniquement lorsque stream: true.
Possible Properties:
| Propriété | Tapez | Obligatoire | Descriptif |
|---|---|---|---|
include_usage | Booléen | Non | S'il est défini, un bloc supplémentaire sera diffusé avant le message data: [DONE]. Le champ d'utilisation de ce bloc affiche les statistiques d'utilisation du jeton pour l'ensemble de la requête, et le champ de choix est toujours un tableau vide. Tous les autres blocs incluront également un champ d'utilisation, mais sa valeur sera nulle. Remarque: Si le flux est interrompu, vous ne recevrez peut-être pas de bloc d'utilisation final contenant l'utilisation totale du jeton de la demande. |
response_format
- Type : Objet
- Obligatoire: Non
Spécifie le format que le modèle doit générer.
- Définissez sur
{ "type": "json_schema", "json_schema": {...} }pour activer la sortie structurée, en vous assurant que le modèle correspond au schéma JSON fourni. - Réglez sur
{ "type": "json_object" }pour activer le mode JSON, en garantissant que les messages générés sont des JSON valides.
Remarque importante: lorsque vous utilisez le mode JSON, vous devez également demander explicitement au modèle de générer du JSON via des messages système ou utilisateur. Sinon, le modèle peut générer des blancs sans fin jusqu'à ce qu'il atteigne les limites des jetons.
Possible Types:
| Tapez | Descriptif |
|---|---|
| texte | Format de réponse par défaut. Utilisé pour générer des réponses textuelles. |
| json_schema | Format de réponse du schéma JSON. Utilisé pour générer des réponses JSON structurées. En savoir plus sur la sortie structurée. |
| json_object | Format de réponse d'objet JSON. Une ancienne méthode pour générer des réponses JSON. Pour les modèles pris en charge, nous vous recommandons d'utiliser json_schema. |
text Properties:
| Propriété | Tapez | Obligatoire | Descriptif |
|---|---|---|---|
type | Chaîne | Oui | Le type de format de réponse en cours de définition. Toujours "texte". |
json_schema Properties:
| Propriété | Tapez | Obligatoire | Descriptif |
|---|---|---|---|
json_schema | Objet | Oui | Options de configuration de sortie structurée, y compris le schéma JSON. |
type | Chaîne | Oui | Le type de format de réponse en cours de définition. Toujours "json_schema". |
json_schema.json_schema Properties:
| Propriété | Tapez | Obligatoire | Descriptif |
|---|---|---|---|
name | Chaîne | Oui | Le nom du format de réponse. Doit être a-z, A-Z, 0-9 ou contenir des traits de soulignement et des traits d'union, avec une longueur maximale de 64. |
description | Chaîne | Non | Une description de l'objectif du format de réponse, utilisée par le modèle pour déterminer comment répondre dans ce format. |
schema | Objet | Non | Le schéma du format de réponse, décrit comme un objet Schema JSON. |
strict | Booléen ou nul | Non | S'il faut activer le respect strict du schéma lors de la génération de la sortie. S'il est défini sur true, le modèle suivra toujours le schéma exact défini dans le champ schéma. strict est vrai, seul un sous-ensemble du schéma JSON est pris en charge. |
json_object Properties:
| Propriété | Tapez | Obligatoire | Descriptif |
|---|---|---|---|
type | Chaîne | Oui | Le type de format de réponse en cours de définition. Toujours "json_object". |
seed
- Type: Entier ou nul
- Obligatoire: Non Fonctionnalité bêta. Si cela est spécifié, notre système fera de son mieux pour effectuer un échantillonnage déterministe, donc les requêtes répétées avec la même graine et les mêmes paramètres devraient renvoyer les mêmes résultats. Aucune garantie de déterminisme, vous devez vous référer au system_fingerprint des paramètres de réponse pour surveiller les modifications du backend.
tools
- Type : Tableau
- Obligatoire: Non
Une liste d'outils que le modèle peut appeler. Actuellement, seules les fonctions sont prises en charge en tant qu'outils. Utilisez ce paramètre pour fournir une liste de fonctions pour lesquelles le modèle peut générer une entrée JSON. Jusqu'à 128 fonctions sont prises en charge.
Properties:
| Propriété | Tapez | Obligatoire | Descriptif |
|---|---|---|---|
function | Objet | Oui | Informations sur la fonction à appeler |
type | Chaîne | Oui | Le type d'outil. Actuellement, seule la fonction est prise en charge. |
function Properties:
| Propriété | Tapez | Obligatoire | Descriptif |
|---|---|---|---|
name | Chaîne | Oui | Le nom de la fonction à appeler. Doit être a-z, A-Z, 0-9 ou contenir des traits de soulignement et des traits d'union, avec une longueur maximale de 64. |
description | Chaîne | Non | Une description de la fonctionnalité de la fonction, utilisée par le modèle pour déterminer quand et comment appeler la fonction. |
parameters | Objet | Non | Les paramètres acceptés par la fonction, décrits comme un objet Schema JSON. Veuillez vous référer au guide pour des exemples et à la référence du schéma JSON pour la documentation sur le format. L'omission de la définition des paramètres entraîne une liste de paramètres vide pour la fonction. |
strict | Booléen ou nul | Non | Par défaut: faux. Indique s'il faut activer le respect strict du schéma lors de la génération d'appels de fonction. S'il est défini sur true, le modèle suivra le schéma exact défini dans le champ des paramètres. strict est vrai, seul un sous-ensemble du schéma JSON est pris en charge. Pour plus de détails, veuillez vous référer à la section de sortie structurée du guide d'appel de fonction. |
functions
- Type : Tableau
- Obligatoire: Non
- Remarque: obsolète, il est recommandé d'utiliser
tools
Liste des fonctions pour lesquelles le modèle peut générer une entrée JSON.
| Propriété | Tapez | Obligatoire | Descriptif |
|---|---|---|---|
name | Chaîne | Oui | Le nom de la fonction à appeler. Doit être a-z, A-Z, 0-9 ou contenir des traits de soulignement et des traits d'union, avec une longueur maximale de 64. |
description | Chaîne | Non | Une description de la fonctionnalité de la fonction, utilisée par le modèle pour déterminer quand et comment appeler la fonction. |
parameters | Objet | Non | Les paramètres acceptés par la fonction, décrits comme un objet Schema JSON. L'omission de la définition des paramètres entraîne une liste de paramètres vide pour la fonction. |
tool_choice
- Type : Chaîne ou Objet
- Obligatoire: Non
Contrôle quel outil (le cas échéant) le modèle doit appeler:
none: Le modèle n'appellera aucun outil, mais générera un messageauto: Le modèle peut choisir entre générer un message ou appeler un ou plusieurs outilsrequired: Le modèle doit appeler un ou plusieurs outils{"type": "function", "function": {"name": "my_function"}}: Force le modèle à appeler un outil spécifique
La valeur par défaut est none lorsqu'aucun outil n'est présent et sur auto lorsque des outils sont présents.
Possible Types:
| Tapez | Descriptif |
|---|---|
| Chaîne | none signifie que le modèle n'appellera aucun outil, mais générera un message. auto signifie que le modèle peut choisir entre générer un message ou appeler un ou plusieurs outils. requis signifie que le modèle doit appeler un ou plusieurs outils. |
| Objet | Spécifie l'outil que le modèle doit utiliser. Utilisé pour forcer le modèle à appeler une fonction spécifique. |
Object Properties:
| Propriété | Tapez | Obligatoire | Descriptif |
|---|---|---|---|
function | Objet | Oui | Contient un objet avec des informations sur la fonction |
type | Chaîne | Oui | Le type d'outil. Actuellement, seule la fonction est prise en charge. |
function Properties:
| Propriété | Tapez | Obligatoire | Descriptif |
|---|---|---|---|
name | Chaîne | Oui | Le nom de la fonction à appeler. |
function_call
- Type : Chaîne ou Objet
- Obligatoire: Non
- Par défaut :
nonelorsqu'aucune fonction,autolorsqu'une fonction est présente - Remarque: obsolète, il est recommandé d'utiliser
tool_choice
Contrôle quelle fonction (le cas échéant) le modèle doit appeler:
none: Le modèle n'appellera aucune fonction, mais générera un messageauto: Le modèle peut choisir entre générer un message ou appeler une fonction{"name": "my_function"}: Force le modèle à appeler une fonction spécifique
Object Type Properties:
| Propriété | Tapez | Obligatoire | Descriptif |
|---|---|---|---|
name | Chaîne | Oui | Le nom de la fonction à appeler. |
parallel_tool_calls
- Type: Booléen
- Obligatoire: Non
- Par défaut: vrai
S'il faut activer les appels de fonctions parallèles pendant l'utilisation de l'outil.
stream
- Type: booléen ou nul
- Obligatoire: Non
- Par défaut: faux
Si la valeur est true, les données de réponse du modèle seront transmises au client via des événements envoyés par le serveur. Veuillez vous référer à la section de réponse en streaming ci-dessous pour plus d'informations et au guide de réponse en streaming pour savoir comment gérer les événements de streaming.
top_logprobs
- Type: Entier ou nul
- Obligatoire: Non
Un nombre entier compris entre 0 et 20, spécifiant le nombre de jetons les plus probables à chaque position de jeton, chacun avec sa probabilité de log associée. Si ce paramètre est utilisé, logprobs doit être vrai.
web_search_options
- Type : Objet
- Obligatoire: Non
Cet outil recherche sur le Web pour obtenir des résultats pertinents pour la réponse. Apprenez-en davantage sur l’outil de recherche Web.
Possible Properties:
| Propriété | Tapez | Obligatoire | Descriptif |
|---|---|---|---|
search_context_size | Chaîne | Non | Conseils avancés sur la taille de la fenêtre contextuelle pour la recherche. Les valeurs facultatives sont faibles, moyennes ou élevées. le support est la valeur par défaut. |
user_location | Objet ou nul | Non | Paramètres de localisation approximatifs pour la recherche. |
user_location Properties:
| Propriété | Tapez | Obligatoire | Descriptif |
|---|---|---|---|
approximate | Objet | Oui | Paramètres de localisation approximatifs pour la recherche. |
approximate Properties:
| Propriété | Tapez | Obligatoire | Descriptif |
|---|---|---|---|
city | Chaîne | Non | Saisie de texte libre pour la ville de l'utilisateur, par exemple San Francisco. |
country | Chaîne | Non | Code pays ISO à deux lettres de l'utilisateur, par exemple États-Unis. |
region | Chaîne | Non | Saisie de texte libre pour la région de l'utilisateur, par exemple la Californie. |
timezone | Chaîne | Non | Le fuseau horaire IANA de l'utilisateur, par exemple America/Los_Angeles. |
type | Chaîne | Oui | Le type d’approximation de localisation. Toujours « approximatif ». |
📥 Réponse
Objet de fin de discussion
Renvoie un objet d'achèvement de discussion ou un flux d'objets de bloc d'achèvement de discussion si la demande a été diffusée en continu.
id
- Type : Chaîne
- Description : L'identifiant unique de la réponse
object
- Type : Chaîne
- Description : Le type d'objet, valeur "chat.completion"
created
- Type : Entier
- Description: L'horodatage de la création de la réponse
model
- Type : Chaîne
- Description : Le nom du modèle utilisé
system_fingerprint
- Type : Chaîne
- Description: l'identifiant d'empreinte digitale du système, représentant la configuration backend de l'exécution du modèle. Peut être utilisé avec le paramètre de demande de départ pour comprendre quand des modifications du backend susceptibles d'affecter le déterminisme se sont produites.
choices
- Type : Tableau
- Description: Une liste d'options de réponse générées. Si n est supérieur à 1, plusieurs options peuvent être présentes.
- Propriétés:
index: L'index de l'option dans la liste des options.message: Le message de fin de chat généré par le modèle.role: Le rôle de l'auteur du message.content: Le contenu du message, qui peut être nul.refusal: Le message de rejet généré par le modèle, qui peut être nul.annotations: Annotations pour le message, fournies le cas échéant, par exemple lors de l'utilisation de l'outil de recherche Web.type: Le type d'annotation. Toujours "url_citation" lorsqu'il s'agit d'une référence URL.url_citation: La référence URL dans le message.start_index: L'index du premier caractère de la référence URL dans le message.end_index: L'index du dernier caractère de la référence URL dans le message.url: L'URL de la ressource réseau.title: Le titre de la ressource réseau.audio: Si la modalité de sortie audio a été demandée, cet objet contient les données de la réponse audio du modèle.data: Les octets audio encodés en Base64 du modèle, au format spécifié dans la requête.id: L'identifiant unique de cette réponse audio.transcript: La transcription de l'audio du modèle.expires_at: L'horodatage Unix (secondes) auquel cette réponse audio est disponible pour les conversations multi-tours sur le serveur.function_call: (Obsolète) Le nom et les paramètres de la fonction à appeler, générés par le modèle. Remplacé partool_calls.name: Le nom de la fonction à appeler.arguments: Les paramètres à passer à la fonction, générés par le modèle au format JSON.tool_calls: Appels d'outils générés par le modèle, comme les appels de fonctions.id: L'ID de l'appel de l'outil.type: Le type d'outil. Actuellement, seule la fonction est prise en charge.function: La fonction appelée par le modèle.name: Le nom de la fonction à appeler.arguments: Les paramètres à passer à la fonction, générés par le modèle au format JSON. Notez que le modèle ne génère pas toujours un JSON valide et peut produire des paramètres non définis dans votre schéma de fonction. Avant d'appeler la fonction, veuillez valider les paramètres dans votre code.logprobs: Enregistrer les informations de probabilité.content: Une liste de jetons de contenu de message avec des informations de probabilité de journal.token: Le jeton.logprob: Le log de probabilité de ce jeton, s'il faisait partie du top 20 des jetons les plus probables. Sinon, une valeur de -9999,0 est utilisée pour indiquer que ce jeton est très improbable.bytes: Une liste d'entiers représentant la représentation en octets UTF-8 du jeton. Ceci est utile lorsqu'un caractère est représenté par plusieurs jetons et que leurs représentations en octets doivent être combinées pour générer la représentation textuelle correcte. Si un jeton n'a pas de représentation en octets, il peut être nul.top_logprobs: Une liste des jetons les plus probables à cette position de jeton et leurs probabilités de journal. Dans de rares cas, le nombre de top_logprobs renvoyés peut être inférieur au nombre demandé.refusal: Une liste de jetons de rejet de message avec des informations de probabilité de journalisation.finish_reason: La raison pour laquelle le modèle a arrêté de générer des jetons. Si le modèle a atteint un point d'arrêt naturel ou a fourni une séquence d'arrêt, c'est « stop » ; si le nombre maximum de tokens spécifié dans la requête a été atteint, il s'agit de « longueur » ; si le contenu a été omis en raison de filtres de contenu, il s'agit de « content_filter » ; si le modèle a appelé un outil, il s'agit de "tool_calls" ; si le modèle a appelé une fonction, il s'agit de "function_call" (obsolète).
usage
- Type : Objet
- Description : Statistiques d'utilisation de la demande de complétion.
- Propriétés:
prompt_tokens: Le nombre de jetons dans l'invite.completion_tokens: Le nombre de tokens dans la complétion générée.total_tokens: Le nombre total de tokens utilisés dans la requête (invite + complétion).prompt_tokens_details: une répartition des jetons utilisés dans l'invite.cached_tokens: les jetons mis en cache dans l'invite.audio_tokens: les jetons d'entrée audio dans l'invite.completion_tokens_details: Une répartition des jetons utilisés lors de la réalisation.reasoning_tokens: Les jetons de raisonnement générés par le modèle.audio_tokens: Les tokens audio générés par le modèle.accepted_prediction_tokens: Le nombre de jetons dans la sortie prédite qui sont apparus lors de l'achèvement lors de l'utilisation de la sortie prédite.rejected_prediction_tokens: Le nombre de jetons dans la sortie prédite qui n'apparaissent pas dans la complétion lors de l'utilisation de la sortie prédite. Cependant, comme les jetons de raisonnement, ces jetons sont toujours pris en compte dans le total des jetons d'achèvement pour les limites de facturation, de sortie et de fenêtre contextuelle.
service_tier
- Type: chaîne ou null
- Description: Spécifie le niveau de latence pour le traitement de la demande. Ce paramètre est pertinent pour les clients abonnés au service de niveau Scale:
- S'il est défini sur « auto » et que le projet est activé pour le niveau d'échelle, le système utilisera les crédits du niveau d'échelle jusqu'à ce qu'ils soient épuisés.
- Si la valeur est « auto » et que le projet n'est pas activé pour le niveau Scale, la demande sera traitée en utilisant le niveau de service par défaut, avec un SLA de temps de fonctionnement normal inférieur et aucune garantie de latence.
- Si la valeur est « par défaut », la demande sera traitée en utilisant le niveau de service par défaut, avec un SLA de temps de fonctionnement normal inférieur et aucune garantie de latence.
- Si la valeur est « flex », la demande sera traitée à l'aide du niveau de service Flex Processing. Pour plus de détails, veuillez vous référer à la documentation.
- Lorsqu'il n'est pas défini, le comportement par défaut est « auto »
- Lorsque ce paramètre est défini, le corps de la réponse inclura le service_tier utilisé
Exemple de réponse d'objet d'achèvement de chat
{
"id": "chatcmpl-B9MHDbslfkBeAs8l4bebGdFOJ6PeG",
"object": "chat.completion",
"created": 1741570283,
"model": "gpt-4o-2024-08-06",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "The image shows a wooden boardwalk path through dense green grass or meadow. The sky is bright blue with scattered clouds, creating a peaceful and serene atmosphere for the entire scene. Trees and shrubs can be seen in the background.",
"refusal": null,
"annotations": []
},
"logprobs": null,
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 1117,
"completion_tokens": 46,
"total_tokens": 1163,
"prompt_tokens_details": {
"cached_tokens": 0,
"audio_tokens": 0
},
"completion_tokens_details": {
"reasoning_tokens": 0,
"audio_tokens": 0,
"accepted_prediction_tokens": 0,
"rejected_prediction_tokens": 0
}
},
"service_tier": "default",
"system_fingerprint": "fp_fc9f1d7035"
}Objet de liste d'achèvement de discussion
Lorsque plusieurs finalisations de chat sont renvoyées, l'API peut renvoyer un objet de liste de finalisation de chat.
object
- Type : Chaîne
- Description: Le type d'objet, toujours "liste"
data
- Type : Tableau
- Description: un tableau d'objets de complétion de discussion
first_id
- Type : Chaîne
- Description: l'identifiant de la première discussion terminée dans le tableau de données
last_id
- Type : Chaîne
- Description : L'identifiant de la dernière discussion terminée dans le tableau de données
has_more
- Type: Booléen
- Description: indique s'il y a d'autres complétions de chat disponibles
Exemple de réponse de liste d'achèvement de chat
{
"object": "list",
"data": [
{
"object": "chat.completion",
"id": "chatcmpl-AyPNinnUqUDYo9SAdA52NobMflmj2",
"model": "gpt-4o-2024-08-06",
"created": 1738960610,
"request_id": "req_ded8ab984ec4bf840f37566c1011c417",
"tool_choice": null,
"usage": {
"total_tokens": 31,
"completion_tokens": 18,
"prompt_tokens": 13
},
"seed": 4944116822809979520,
"top_p": 1.0,
"temperature": 1.0,
"presence_penalty": 0.0,
"frequency_penalty": 0.0,
"system_fingerprint": "fp_50cad350e4",
"input_user": null,
"service_tier": "default",
"tools": null,
"metadata": {},
"choices": [
{
"index": 0,
"message": {
"content": "The circuit's heart hums low,\nLearning patterns in silence—\nFuture's quiet spark.",
"role": "assistant",
"tool_calls": null,
"function_call": null
},
"finish_reason": "stop",
"logprobs": null
}
],
"response_format": null
}
],
"first_id": "chatcmpl-AyPNinnUqUDYo9SAdA52NobMflmj2",
"last_id": "chatcmpl-AyPNinnUqUDYo9SAdA52NobMflmj2",
"has_more": false
}Objet de liste de messages de fin de discussion
L'objet Chat Completion Message List représente une liste de messages de discussion.
object
- Type : Chaîne
- Description: Le type d'objet, toujours "liste"
data
- Type : Tableau
- Description: un tableau d'objets de message de fin de discussion, chaque objet contenant les propriétés suivantes:
id: L'identifiant du message de chatrole: Le rôle de l'auteur du messagecontent: Le contenu du message, qui peut être nulname: Le nom de l'expéditeur du message, qui peut être nulrefusal: Le message de rejet généré par le modèle, qui peut être nulannotations: Annotations pour le message, fournies le cas échéant, par exemple lors de l'utilisation de l'outil de recherche Webtype: Le type d'annotation. Toujours "url_citation" lorsqu'il s'agit d'une référence URL.url_citation: La référence URL dans le message.start_index: L'index du premier caractère de la référence URL dans le message.end_index: L'index du dernier caractère de la référence URL dans le message.url: L'URL de la ressource réseau.title: Le titre de la ressource réseau.audio: Si la modalité de sortie audio a été demandée, cet objet contient les données de la réponse audio du modèle.data: Les octets audio encodés en Base64 du modèle, au format spécifié dans la requête.id: L'identifiant unique de cette réponse audio.transcript: La transcription de l'audio du modèle.expires_at: L'horodatage Unix (secondes) auquel cette réponse audio est disponible pour les conversations multi-tours sur le serveur.function_call: (Obsolète) Le nom et les paramètres de la fonction à appeler, générés par le modèle. Remplacé partool_calls.name: Le nom de la fonction à appeler.arguments: Les paramètres à passer à la fonction, générés par le modèle au format JSON.tool_calls: Appels d'outils générés par le modèle, comme les appels de fonctionsid: L'ID de l'appel de l'outil.type: Le type d'outil. Actuellement, seule la fonction est prise en charge.function: La fonction appelée par le modèle.name: Le nom de la fonction à appeler.arguments: Les paramètres à passer à la fonction, générés par le modèle au format JSON.
first_id
- Type : Chaîne
- Description : L'identifiant du premier message de chat dans le tableau de données
last_id
- Type : Chaîne
- Description : L'identifiant du dernier message de chat dans le tableau de données
has_more
- Type: Booléen
- Description: indique si d'autres messages de discussion sont disponibles
Exemple de réponse de liste de messages de fin de discussion
{
"object": "list",
"data": [
{
"id": "chatcmpl-AyPNinnUqUDYo9SAdA52NobMflmj2-0",
"role": "user",
"content": "Write a haiku about artificial intelligence",
"name": null,
"content_parts": null
}
],
"first_id": "chatcmpl-AyPNinnUqUDYo9SAdA52NobMflmj2-0",
"last_id": "chatcmpl-AyPNinnUqUDYo9SAdA52NobMflmj2-0",
"has_more": false
}