88API88API
User GuideAI ApplicationsAPI ReferenceHelp & Support
Chat

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

Cré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_KEY

$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 messageDescriptif
Message du développeurInstructions 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èmeInstructions 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 utilisateurMessages envoyés par l'utilisateur du terminal, contenant des invites ou des informations contextuelles supplémentaires.
Message de l'assistantMessages envoyés par le modèle en réponse aux messages des utilisateurs.
Message de l'outilContenu d'un message d'outil.
Message de fonctionObsolète.

Developer message Properties:

PropriétéTapezObligatoireDescriptif
roleChaîneOuiLe rôle de l'auteur du message, ici « développeur ».
contentChaîne ou tableauOuiLe contenu du message du développeur. Il peut s'agir d'un contenu textuel (chaîne) ou d'un tableau de parties de contenu.
nameChaîneNonUn 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éTapezObligatoireDescriptif
roleChaîneOuiLe rôle de l'auteur du message, ici « système ».
contentChaîne ou tableauOuiLe contenu du message système. Il peut s'agir d'un contenu textuel (chaîne) ou d'un tableau de parties de contenu.
nameChaîneNonUn 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éTapezObligatoireDescriptif
roleChaîneOuiLe rôle de l'auteur du message, ici « utilisateur ».
contentChaîne ou tableauOuiLe contenu du message utilisateur. Il peut s'agir d'un contenu textuel (chaîne) ou d'un tableau de parties de contenu.
nameChaîneNonUn 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 contenuDescriptifPeut être utilisé pour
Partie du contenu texteSaisie de texte.Tous types de messages
Partie du contenu de l'imageEntrée d'images.Messages des utilisateurs
Partie du contenu audioEntrée audio.Messages des utilisateurs
Partie du contenu du fichierEntrée de fichier, utilisée pour la génération de texte.Messages des utilisateurs
Partie de contenu de refusMessages de rejet générés par le modèle.Messages de l'assistant

Text Content Part Properties:

PropriétéTapezObligatoireDescriptif
textChaîneOuiContenu du texte.
typeChaîneOuiLe type de partie de contenu.

Image Content Part Properties:

PropriétéTapezObligatoireDescriptif
image_urlObjetOuiContient une URL d’image ou des données d’image codées en base64.
typeChaîneOuiLe type de partie de contenu.

Image URL Object Properties:

PropriétéTapezObligatoireDescriptif
urlChaîneOuiL'URL de l'image ou les données d'image encodées en base64.
detailChaîneNonSpécifie le niveau de détail de l'image. La valeur par défaut est "auto".

Audio Content Part Properties:

PropriétéTapezObligatoireDescriptif
input_audioObjetOuiContient un objet avec des données audio.
typeChaîneOuiLe type de partie de contenu. Toujours "input_audio".

Audio Input Object Properties:

PropriétéTapezObligatoireDescriptif
dataChaîneOuiDonnées audio codées en base64.
formatChaîneOuiLe format des données audio codées. Prend actuellement en charge "wav" et "mp3".

File Content Part Properties:

PropriétéTapezObligatoireDescriptif
fileObjetOuiContient un objet avec des données de fichier.
typeChaîneOuiLe type de partie de contenu. Toujours "archiver".

File Object Properties:

PropriétéTapezObligatoireDescriptif
file_dataChaîneNonDonnées de fichier codées en base64, utilisées pour transmettre le fichier sous forme de chaîne au modèle.
file_idChaîneNonL'ID du fichier téléchargé, utilisé comme entrée.
filenameChaîneNonLe nom de fichier, utilisé pour transmettre le fichier sous forme de chaîne au modèle.

Assistant message Properties:

PropriétéTapezObligatoireDescriptif
roleChaîneOuiLe rôle de l'auteur du message, ici « assistant ».
contentChaîne ou tableauNonLe contenu du message de l'assistant. Obligatoire sauf si tool_calls ou function_call est spécifié.
nameChaîneNonUn nom facultatif pour le participant. Fournit des informations au modèle pour distinguer les participants ayant le même rôle.
audioObjet ou nulNonDonnées sur la réponse audio précédente du modèle.
function_callObjet ou nulNonObsolète, remplacé par tool_calls. Le nom et les paramètres de la fonction à appeler, générés par le modèle.
tool_callsTableauNonAppels d'outils générés par le modèle, tels que les appels de fonction.
refusalChaîne ou nullNonLe message de refus de l'assistant.

Tool message Properties:

PropriétéTapezObligatoireDescriptif
roleChaîneOuiLe rôle de l'auteur du message, ici « outil ».
contentChaîne ou tableauOuiLe contenu du message de l'outil.
tool_call_idChaîneOuiAppel d’outil associé à cette réponse au message.

Function message Properties (Deprecated):

PropriétéTapezObligatoireDescriptif
roleChaîneOuiLe rôle de l'auteur du message, ici « fonction ».
contentChaîne ou nullOuiLe contenu du message de fonction.
nameChaîneOuiLe 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:

TapezDescriptif
Contenu statiqueContenu 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éTapezObligatoireDescriptif
contentChaîne ou tableauOuiLe 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.
typeChaîneOuiLe type de contenu prédit à fournir. Actuellement, le type est toujours « contenu ».

Possible Content Types:

  1. 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.

  2. 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éTapezObligatoireDescriptif
textChaîneOuiContenu du texte.
typeChaîneOuiLe 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éTapezObligatoireDescriptif
formatChaîneOuiSpécifie le format audio de sortie. Doit être l'un des suivants: wav, mp3, flac, opus ou pcm16.
voiceChaîneOuiLa 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éTapezObligatoireDescriptif
include_usageBooléenNonS'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:

TapezDescriptif
texteFormat de réponse par défaut. Utilisé pour générer des réponses textuelles.
json_schemaFormat 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_objectFormat 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éTapezObligatoireDescriptif
typeChaîneOuiLe type de format de réponse en cours de définition. Toujours "texte".

json_schema Properties:

PropriétéTapezObligatoireDescriptif
json_schemaObjetOuiOptions de configuration de sortie structurée, y compris le schéma JSON.
typeChaîneOuiLe type de format de réponse en cours de définition. Toujours "json_schema".

json_schema.json_schema Properties:

PropriétéTapezObligatoireDescriptif
nameChaîneOuiLe 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.
descriptionChaîneNonUne description de l'objectif du format de réponse, utilisée par le modèle pour déterminer comment répondre dans ce format.
schemaObjetNonLe schéma du format de réponse, décrit comme un objet Schema JSON.
strictBooléen ou nulNonS'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éTapezObligatoireDescriptif
typeChaîneOuiLe 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éTapezObligatoireDescriptif
functionObjetOuiInformations sur la fonction à appeler
typeChaîneOuiLe type d'outil. Actuellement, seule la fonction est prise en charge.

function Properties:

PropriétéTapezObligatoireDescriptif
nameChaîneOuiLe 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.
descriptionChaîneNonUne description de la fonctionnalité de la fonction, utilisée par le modèle pour déterminer quand et comment appeler la fonction.
parametersObjetNonLes 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.
strictBooléen ou nulNonPar 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éTapezObligatoireDescriptif
nameChaîneOuiLe 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.
descriptionChaîneNonUne description de la fonctionnalité de la fonction, utilisée par le modèle pour déterminer quand et comment appeler la fonction.
parametersObjetNonLes 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 message
  • auto : Le modèle peut choisir entre générer un message ou appeler un ou plusieurs outils
  • required : 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:

TapezDescriptif
Chaînenone 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.
ObjetSpécifie l'outil que le modèle doit utiliser. Utilisé pour forcer le modèle à appeler une fonction spécifique.

Object Properties:

PropriétéTapezObligatoireDescriptif
functionObjetOuiContient un objet avec des informations sur la fonction
typeChaîneOuiLe type d'outil. Actuellement, seule la fonction est prise en charge.

function Properties:

PropriétéTapezObligatoireDescriptif
nameChaîneOuiLe nom de la fonction à appeler.

function_call

  • Type : Chaîne ou Objet
  • Obligatoire: Non
  • Par défaut : none lorsqu'aucune fonction, auto lorsqu'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 message
  • auto : 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éTapezObligatoireDescriptif
nameChaîneOuiLe 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éTapezObligatoireDescriptif
search_context_sizeChaîneNonConseils 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_locationObjet ou nulNonParamètres de localisation approximatifs pour la recherche.

user_location Properties:

PropriétéTapezObligatoireDescriptif
approximateObjetOuiParamètres de localisation approximatifs pour la recherche.

approximate Properties:

PropriétéTapezObligatoireDescriptif
cityChaîneNonSaisie de texte libre pour la ville de l'utilisateur, par exemple San Francisco.
countryChaîneNonCode pays ISO à deux lettres de l'utilisateur, par exemple États-Unis.
regionChaîneNonSaisie de texte libre pour la région de l'utilisateur, par exemple la Californie.
timezoneChaîneNonLe fuseau horaire IANA de l'utilisateur, par exemple America/Los_Angeles.
typeChaîneOuiLe 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é par tool_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 chat
  • role : Le rôle de l'auteur du message
  • content : Le contenu du message, qui peut être nul
  • name : Le nom de l'expéditeur 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é par tool_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.

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
}