Partager via


Référence : Complétions de conversation | Azure Machine Learning

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