Référence : complétions de conversation | Azure AI Studio
Important
Les éléments marqués (préversion) dans cet article sont actuellement en préversion publique. Cette préversion est fournie sans contrat de niveau de service, nous la déconseillons dans des charges de travail de production. Certaines fonctionnalités peuvent être limitées ou non prises en charge. Pour plus d’informations, consultez Conditions d’Utilisation Supplémentaires relatives aux Évaluations Microsoft Azure.
Crée une réponse de modèle pour la conversation donnée.
POST /chat/completions?api-version=2024-04-01-preview
Paramètres URI
Nom | Dans | Obligatoire | Type | Description |
---|---|---|---|---|
api-version | query | True | string | Version de l’API au format « AAAA-MM-JJ » ou « AAAA-MM-JJ-preview ». |
En-tête de requête
Nom | Requise | Type | Description |
---|---|---|---|
extra-parameters | string | Comportement de l’API quand des paramètres supplémentaires sont indiqués dans la charge utile. L’utilisation de pass-through oblige l’API à passer le paramètre au modèle sous-jacent. Utilisez cette valeur quand vous souhaitez passer des paramètres dont vous savez qu’ils sont pris en charge par le modèle sous-jacent. L’utilisation de ignore oblige l’API à supprimer tout paramètre non pris en charge. Utilisez cette valeur quand vous devez vous servir de la même charge utile sur différents modèles, mais que l’un des paramètres supplémentaires peut provoquer une erreur dans un modèle s’il n’est pas pris en charge. L’utilisation de error oblige l’API à rejeter tout paramètre supplémentaire dans la charge utile. Seuls les paramètres spécifiés dans cette API peuvent être indiqués, sinon une erreur 400 est retournée. |
|
azureml-model-deployment | string | Nom du déploiement vers lequel vous souhaitez router la requête. Pris en charge pour les points de terminaison prenant en charge plusieurs déploiements. |
Corps de la demande
Nom | Requise | Type | Description |
---|---|---|---|
modèle | string | Nom du modèle. Ce paramètre est ignoré si le point de terminaison ne sert qu’un seul modèle. | |
Cloud vers appareil | True | ChatCompletionRequestMessage | Liste des messages comprenant la conversation jusqu’ici. Retourne une erreur 422 si au moins quelques-uns des messages ne peuvent pas être compris par le modèle. |
frequency_penalty | number | Permet d’empêcher les répétitions de mots en réduisant le risque de sélectionner un mot s’il a déjà été utilisé. Plus la pénalité de fréquence est élevée, moins le modèle est susceptible de répéter les mêmes mots dans sa sortie. Retourne une erreur 422 si la valeur ou le paramètre ne sont pas pris en charge par le modèle. | |
max_tokens | entier | Nombre maximal de jetons pouvant être générés dans la complétion de conversation. La longueur totale des jetons d’entrée et des jetons générés est limitée par la longueur du contexte du modèle. Si la valeur nulle est passée, le modèle utilise sa longueur de contexte maximale. |
|
presence_penalty | number | Permet d’empêcher les mêmes sujets d’être répétés en pénalisant un mot s’il existe déjà dans la complétion, même une seule fois. Retourne une erreur 422 si la valeur ou le paramètre ne sont pas pris en charge par le modèle. | |
response_format | ChatCompletionResponseFormat | ||
seed | entier | S’il est spécifié, notre système s’efforce d’échantillonner de manière déterministe, de sorte que les requêtes répétées avec le même seed et les mêmes paramètres devraient retourner le même résultat. Le déterminisme n’est pas garanti, c’est pourquoi vous devriez vous référer au paramètre de réponse system_fingerprint pour surveiller les modifications dans le back-end. |
|
stop | Séquences dans lesquelles l’API cesse de générer d’autres jetons. | ||
flux | booléen | Si cette option est définie, des deltas de message partiels sont envoyés. Les jetons sont envoyés en tant qu’événements envoyés par le serveur de données uniquement au fur et à mesure qu’ils deviennent disponibles. Le flux se termine par un message data: [DONE] . |
|
température | number | Nombre non-négatif. Retourne 422 si la valeur n’est pas prise en charge par le modèle. | |
tool_choice | ChatCompletionToolChoiceOption | Contrôle la fonction (le cas échéant) appelée par le modèle. none signifie que le modèle n’appelle pas de fonction et génère un message à la place. auto signifie que le modèle peut choisir entre générer un message ou appeler une fonction. La spécification d’une fonction particulière via {"type": "function", "function": {"name": "my_function"}} force le modèle à appeler cette fonction.none est la valeur par défaut lorsqu’aucune fonction n’est présente. auto est la valeur par défaut si des fonctions sont présentes. Retourne une erreur 422 si l’outil n’est pas pris en charge par le modèle. |
|
tools | ChatCompletionTool[] | Liste d’outils que le modèle peut appeler. Actuellement, seules les fonctions sont prises en charge en tant qu’outil. Utilisez cette option afin de fournir une liste des fonctions pour lesquelles le modèle peut générer des entrées JSON. Retourne une erreur 422 si l’outil n’est pas pris en charge par le modèle. | |
top_p | number | Alternative à l’échantillonnage avec la température, appelée échantillonnage de noyau, où le modèle considère les résultats des jetons avec la masse de probabilité top_p. Par conséquent, 0,1 signifie que seuls les jetons comprenant la masse de probabilité supérieure de 10 % sont considérés. Nous vous recommandons généralement de modifier cela ou temperature mais pas les deux. |
Réponses
Nom | Type | Description |
---|---|---|
200 OK | CreateChatCompletionResponse | Ok |
401 Non autorisé | UnauthorizedError | Le jeton d’accès est manquant ou non valide En-têtes x-ms-error-code : chaîne |
404 Not Found | NotFoundError | La modalité n’est pas prise en charge par le modèle. Consultez la documentation du modèle pour voir quels itinéraires sont disponibles. En-têtes x-ms-error-code : chaîne |
422 Impossible de traiter l’entité | UnprocessableContentError | La requête contient du contenu ne pouvant pas être traité En-têtes x-ms-error-code : chaîne |
429 Trop de requêtes | TooManyRequestsError | Vous avez atteint votre limite de taux attribuée et votre requête doit être régulée. En-têtes x-ms-error-code : chaîne |
Autres codes d’état | ContentFilterError | Demande incorrecte En-têtes x-ms-error-code : chaîne |
Sécurité
Autorisation
Jeton avec le préfixe Bearer:
, par exemple Bearer abcde12345
Type : apiKey
In : en-tête
AADToken
Authentification OAuth2 Azure Active Directory
Type : OAuth2
Flux : application
URL du jeton : https://login.microsoftonline.com/common/oauth2/v2.0/token
Exemples
Crée une réponse de modèle pour la conversation donnée
Exemple de requête
POST /chat/completions?api-version=2024-04-01-preview
{
"messages": [
{
"role": "system",
"content": "You are a helpful assistant"
},
{
"role": "user",
"content": "Explain Riemann's conjecture"
},
{
"role": "assistant",
"content": "The Riemann Conjecture is a deep mathematical conjecture around prime numbers and how they can be predicted. It was first published in Riemann's groundbreaking 1859 paper. The conjecture states that the Riemann zeta function has its zeros only at the negative even integers and complex numbers with real part 1/21. Many consider it to be the most important unsolved problem in pure mathematics. The Riemann hypothesis is a way to predict the probability that numbers in a certain range are prime that was also devised by German mathematician Bernhard Riemann in 18594."
},
{
"role": "user",
"content": "Ist it proved?"
}
],
"frequency_penalty": 0,
"presence_penalty": 0,
"max_tokens": 256,
"seed": 42,
"stop": "<|endoftext|>",
"stream": false,
"temperature": 0,
"top_p": 1,
"response_format": { "type": "text" }
}
Exemple de réponse
Code d’état : 200
{
"id": "1234567890",
"model": "llama2-70b-chat",
"choices": [
{
"index": 0,
"finish_reason": "stop",
"message": {
"role": "assistant",
"content": "No, it has never been proved"
}
}
],
"created": 1234567890,
"object": "chat.completion",
"usage": {
"prompt_tokens": 205,
"completion_tokens": 5,
"total_tokens": 210
}
}
Définitions
Nom | Description |
---|---|
ChatCompletionRequestMessage | |
ChatCompletionMessageContentPart | |
ChatCompletionMessageContentPartType | |
ChatCompletionToolChoiceOption | Contrôle la fonction (le cas échéant) appelée par le modèle. none signifie que le modèle n’appelle pas de fonction et génère un message à la place. auto signifie que le modèle peut choisir entre générer un message ou appeler une fonction. La spécification d’une fonction particulière via {"type": "function", "function": {"name": "my_function"}} force le modèle à appeler cette fonction.none est la valeur par défaut lorsqu’aucune fonction n’est présente. auto est la valeur par défaut si des fonctions sont présentes. Retourne une erreur 422 si l’outil n’est pas pris en charge par le modèle. |
ChatCompletionFinishReason | Raison pour laquelle le modèle a cessé de générer des jetons. Cela sera stop si le modèle atteint un point d’arrêt naturel ou une séquence d’arrêt fournie, length si le nombre maximal de jetons spécifié dans la requête est atteint, content_filter si le contenu est omis en raison d’un indicateur de nos filtres de contenu, tool_calls si le modèle appelle un outil. |
ChatCompletionMessageToolCall | |
ChatCompletionObject | Le type d’objet, qui est toujours chat.completion . |
ChatCompletionResponseFormat | Format de réponse pour la réponse du modèle. Le paramètre sur json_object active le mode JSON, ce qui garantit que le message généré par le modèle est un JSON valide. Lorsque vous utilisez le mode JSON, vous devez également demander au modèle de produire vous-même json par le biais d’un message système ou utilisateur. Notez également que le contenu du message peut être partiellement coupé si finish_reason="length" , ce qui indique que la génération a dépassé max_tokens ou que la conversation a dépassé la longueur maximale du contexte. |
ChatCompletionResponseFormatType | Type de format de réponse. |
ChatCompletionResponseMessage | Message de complétion de conversation généré par le modèle. |
ChatCompletionTool | |
ChatMessageRole | Rôle de l’auteur de ce message. |
Choices | Liste des choix de saisie semi-automatique de conversation. |
CompletionUsage | Statistiques d’utilisation pour la demande d’achèvement. |
ContentFilterError | L’appel d’API échoue quand l’invite déclenche un filtre de contenu tel que configuré. Modifiez l’invite et réessayez. |
CreateChatCompletionRequest | |
CreateChatCompletionResponse | Représente une réponse de complétion de conversation retournée par le modèle, en fonction de l’entrée fournie. |
Détails | Détails de l’erreur UnprocessableContentError. |
Fonction | Fonction appelée par le modèle. |
FunctionObject | Définition d’une fonction à qui le modèle a accès. |
ImageDetail | Spécifie le niveau de détail de l’image. |
NotFoundError | L’itinéraire n’est pas valide pour le modèle déployé. |
ToolType | Type de l'outil. Actuellement, seul function est pris en charge. |
TooManyRequestsError | Vous avez atteint la limite de débit qui vous a été affectée, vous devez ralentir vos requêtes. |
UnauthorizedError | L’authentification est manquante ou non valide. |
UnprocessableContentError | La requête contient du contenu qui ne peut pas être traité. L’erreur est retournée quand la charge utile indiquée est valide conformément à cette spécification. Toutefois, certaines des instructions indiquées dans la charge utile ne sont pas prises en charge par le modèle sous-jacent. Utilisez la section details pour comprendre le paramètre incriminé. |
ChatCompletionFinishReason
Raison pour laquelle le modèle a cessé de générer des jetons. Cela sera stop
si le modèle atteint un point d’arrêt naturel ou une séquence d’arrêt fournie, length
si le nombre maximal de jetons spécifié dans la requête est atteint, content_filter
si le contenu est omis en raison d’un indicateur de nos filtres de contenu, tool_calls
si le modèle appelle un outil.
Nom | Type | Description |
---|---|---|
content_filter | string | |
length | string | |
stop | string | |
tool_calls | string |
ChatCompletionMessageToolCall
Nom | Type | Description |
---|---|---|
function | Fonction | Fonction appelée par le modèle. |
id | string | ID de l’appel de l’outil. |
type | ToolType | Type de l'outil. Actuellement, seul function est pris en charge. |
ChatCompletionObject
Le type d’objet, qui est toujours chat.completion
.
Nom | Type | Description |
---|---|---|
chat.completion | string |
ChatCompletionResponseFormat
Format de réponse pour la réponse du modèle. Le paramètre sur json_object
active le mode JSON, ce qui garantit que le message généré par le modèle est un JSON valide. Lorsque vous utilisez le mode JSON, vous devez également demander au modèle de produire vous-même json par le biais d’un message système ou utilisateur. Notez également que le contenu du message peut être partiellement coupé si finish_reason="length"
, ce qui indique que la génération a dépassé max_tokens
ou que la conversation a dépassé la longueur maximale du contexte.
Nom | Type | Description |
---|---|---|
type | ChatCompletionResponseFormatType | Type de format de réponse. |
ChatCompletionResponseFormatType
Type de format de réponse.
Nom | Type | Description |
---|---|---|
json_object | string | |
texte | string |
ChatCompletionResponseMessage
Message de complétion de conversation généré par le modèle.
Nom | Type | Description |
---|---|---|
contenu | string | Contenu du message. |
role | ChatMessageRole | Rôle de l’auteur de ce message. |
tool_calls | ChatCompletionMessageToolCall[] | Appels d’outils générés par le modèle, par exemple les appels de fonction. |
ChatCompletionTool
Nom | Type | Description |
---|---|---|
function | FunctionObject | |
type | ToolType | Type de l'outil. Actuellement, seul function est pris en charge. |
ChatMessageRole
Rôle de l’auteur de ce message.
Nom | Type | Description |
---|---|---|
assistant | string | |
système | string | |
outil | string | |
utilisateur | string |
Choix multiple
Liste des choix de saisie semi-automatique de conversation. Peut être plusieurs si n
est supérieur à 1.
Nom | Type | Description |
---|---|---|
finish_reason | ChatCompletionFinishReason | Raison pour laquelle le modèle a cessé de générer des jetons. Cela sera stop si le modèle atteint un point d’arrêt naturel ou une séquence d’arrêt fournie, length si le nombre maximal de jetons spécifié dans la requête est atteint, content_filter si le contenu est omis en raison d’un indicateur de nos filtres de contenu, tool_calls si le modèle appelle un outil. |
index | entier | Index du choix dans la liste des choix. |
message | ChatCompletionResponseMessage | Message de complétion de conversation généré par le modèle. |
CompletionUsage
Statistiques d’utilisation pour la demande d’achèvement.
Nom | Type | Description |
---|---|---|
completion_tokens | entier | Nombre de jetons dans la complétion générée. |
prompt_tokens | entier | Nombre de jetons dans l’invite. |
total_tokens | entier | Nombre total de jetons utilisés dans la requête (prompt + complétion). |
ContentFilterError
L’appel d’API échoue quand l’invite déclenche un filtre de contenu tel que configuré. Modifiez l’invite et réessayez.
Nom | Type | Description |
---|---|---|
code | string | Code d’erreur. |
error | string | Description de l’erreur. |
message | string | Message d’erreur. |
param | string | Paramètre qui a déclenché le filtre de contenu. |
statut | entier | Code d’état HTTP. |
CreateChatCompletionRequest
Nom | Type | Valeur par défaut | Description |
---|---|---|---|
frequency_penalty | number | 0 | Permet d’empêcher les répétitions de mots en réduisant le risque de sélectionner un mot s’il a déjà été utilisé. Plus la pénalité de fréquence est élevée, moins le modèle est susceptible de répéter les mêmes mots dans sa sortie. Retourne une erreur 422 si la valeur ou le paramètre ne sont pas pris en charge par le modèle. |
max_tokens | entier | Nombre maximal de jetons pouvant être générés dans la complétion de conversation. La longueur totale des jetons d’entrée et des jetons générés est limitée par la longueur du contexte du modèle. Si la valeur nulle est passée, le modèle utilise sa longueur de contexte maximale. |
|
Cloud vers appareil | ChatCompletionRequestMessage[] | Liste des messages comprenant la conversation jusqu’ici. Retourne une erreur 422 si au moins quelques-uns des messages ne peuvent pas être compris par le modèle. | |
presence_penalty | number | 0 | Permet d’empêcher les mêmes sujets d’être répétés en pénalisant un mot s’il existe déjà dans la complétion, même une seule fois. Retourne une erreur 422 si la valeur ou le paramètre ne sont pas pris en charge par le modèle. |
response_format | ChatCompletionResponseFormat | texte | |
seed | entier | S’il est spécifié, notre système s’efforce d’échantillonner de manière déterministe, de sorte que les requêtes répétées avec le même seed et les mêmes paramètres devraient retourner le même résultat. Le déterminisme n’est pas garanti, c’est pourquoi vous devriez vous référer au paramètre de réponse system_fingerprint pour surveiller les modifications dans le back-end. |
|
stop | Séquences dans lesquelles l’API cesse de générer d’autres jetons. | ||
flux | booléen | False | Si cette option est définie, des deltas de message partiels sont envoyés. Les jetons sont envoyés en tant qu’événements envoyés par le serveur de données uniquement au fur et à mesure qu’ils deviennent disponibles. Le flux se termine par un message data: [DONE] . |
température | nombre | 1 | Nombre non-négatif. Retourne 422 si la valeur n’est pas prise en charge par le modèle. |
tool_choice | ChatCompletionToolChoiceOption | Contrôle la fonction (le cas échéant) appelée par le modèle. none signifie que le modèle n’appelle pas de fonction et génère un message à la place. auto signifie que le modèle peut choisir entre générer un message ou appeler une fonction. La spécification d’une fonction particulière via {"type": "function", "function": {"name": "my_function"}} force le modèle à appeler cette fonction.none est la valeur par défaut lorsqu’aucune fonction n’est présente. auto est la valeur par défaut si des fonctions sont présentes. Retourne une erreur 422 si l’outil n’est pas pris en charge par le modèle. |
|
tools | ChatCompletionTool[] | Liste d’outils que le modèle peut appeler. Actuellement, seules les fonctions sont prises en charge en tant qu’outil. Utilisez cette option afin de fournir une liste des fonctions pour lesquelles le modèle peut générer des entrées JSON. Retourne une erreur 422 si l’outil n’est pas pris en charge par le modèle. | |
top_p | nombre | 1 | Alternative à l’échantillonnage avec la température, appelée échantillonnage de noyau, où le modèle considère les résultats des jetons avec la masse de probabilité top_p. Par conséquent, 0,1 signifie que seuls les jetons comprenant la masse de probabilité supérieure de 10 % sont considérés. Nous vous recommandons généralement de modifier cela ou temperature mais pas les deux. |
ChatCompletionRequestMessage
Nom | Type | Description |
---|---|---|
content | chaîne ou ChatCompletionMessageContentPart[] | Contenu du message. |
role | ChatMessageRole | Rôle de l’auteur de ce message. |
tool_calls | ChatCompletionMessageToolCall[] | Appels d’outils générés par le modèle, par exemple les appels de fonction. |
ChatCompletionMessageContentPart
Nom | Type | Description |
---|---|---|
contenu | string | URL de l’image ou des données d’image encodées en base64. |
detail | ImageDetail | Spécifie le niveau de détail de l’image. |
type | ChatCompletionMessageContentPartType | Le type de la partie contenu. |
ChatCompletionMessageContentPartType
Nom | Type | Description |
---|---|---|
text | string | |
image | string | |
image_url | string |
ChatCompletionToolChoiceOption
Contrôle l’outil (le cas échéant) appelé par le modèle.
Nom | Type | Description |
---|---|---|
Aucune | string | Le modèle n’appelle aucun outil et génère un message. |
auto | string | Le modèle peut choisir de générer un message ou d’appeler un ou plusieurs outils. |
requis | string | Le modèle doit appeler un ou plusieurs outils. |
string | La spécification d’un outil particulier via {"type": "function", "function": {"name": "my_function"}} force le modèle à appeler cet outil. |
ImageDetail
Spécifie le niveau de détail de l’image.
Nom | Type | Description |
---|---|---|
auto | string | |
low | string | |
high | string |
CreateChatCompletionResponse
Représente une réponse de complétion de conversation retournée par le modèle, en fonction de l’entrée fournie.
Nom | Type | Description |
---|---|---|
options | Choices[] | Liste des choix de saisie semi-automatique de conversation. Peut être plusieurs si n est supérieur à 1. |
created | entier | Horodatage Unix (en secondes) de la création de la complétion de conversation. |
id | string | Identificateur unique de la complétion de conversation. |
modèle | string | Modèle utilisé pour la complétion de conversation. |
object | ChatCompletionObject | Le type d’objet, qui est toujours chat.completion . |
system_fingerprint | string | Cette empreinte digitale représente la configuration du back-end avec laquelle le modèle s’exécute. Peut être utilisé avec le paramètre de requête seed pour comprendre quand des modifications qui peuvent affecter le déterminisme ont été apportées au back-end. |
utilisation active | CompletionUsage | Statistiques d’utilisation pour la demande d’achèvement. |
Détail
Détails de l’erreur UnprocessableContentError.
Nom | Type | Description |
---|---|---|
loc | string[] | Paramètre à l’origine du problème |
value | string | La valeur transmise au paramètre à l’origine de problèmes. |
Fonction
Fonction appelée par le modèle.
Nom | Type | Description |
---|---|---|
arguments | string | Arguments à utiliser pour appeler la fonction, tels qu’ils sont 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 générer des paramètres incorrects non définis par votre schéma de fonction. Validez les arguments dans votre code avant d’appeler votre fonction. |
name | chaîne | Nom de la fonction à appeler. |
FunctionObject
Définition d’une fonction à qui le modèle a accès.
Nom | Type | Description |
---|---|---|
description | string | Description du rôle de la fonction, utilisée par le modèle pour choisir quand et comment appeler la fonction. |
name | chaîne | Nom de la fonction à appeler. Doit être a-z, A-Z, 0-9 ou contenir des traits de soulignement et des tirets, avec une longueur maximale de 64. |
parameters | object | Paramètres acceptés par les fonctions, décrits sous la forme d’un objet de schéma JSON. L’omission de parameters définit une fonction avec une liste de paramètres vide. |
NotFoundError
Nom | Type | Description |
---|---|---|
error | string | Description de l’erreur. |
message | string | Message d’erreur. |
statut | entier | Code d’état HTTP. |
ToolType
Type de l'outil. Actuellement, seul function
est pris en charge.
Nom | Type | Description |
---|---|---|
function | string |
TooManyRequestsError
Nom | Type | Description |
---|---|---|
error | string | Description de l’erreur. |
message | string | Message d’erreur. |
statut | entier | Code d’état HTTP. |
UnauthorizedError
Nom | Type | Description |
---|---|---|
error | string | Description de l’erreur. |
message | string | Message d’erreur. |
statut | entier | Code d’état HTTP. |
UnprocessableContentError
La requête contient du contenu qui ne peut pas être traité. L’erreur est retournée quand la charge utile indiquée est valide conformément à cette spécification. Toutefois, certaines des instructions indiquées dans la charge utile ne sont pas prises en charge par le modèle sous-jacent. Utilisez la section details
pour mieux comprendre le paramètre incriminé.
Nom | Type | Description |
---|---|---|
code | string | Code d’erreur. |
détails | Détails | |
error | string | Description de l’erreur. |
message | string | Message d’erreur. |
statut | entier | Code d’état HTTP. |