Référence de l'API REST d’Azure OpenAI Service

Cet article fournit des détails sur les points de terminaison API REST d’inférence pour Azure OpenAI.

Authentification

Azure OpenAI offre deux méthodes d’authentification. Vous pouvez utiliser des clés API ou Microsoft Entra ID.

  • Authentification par clé API : pour ce type d’authentification, toutes les requêtes d’API doivent inclure la clé API dans l’en-tête HTTP api-key. Le Démarrage rapide fournit des conseils sur la façon d’effectuer des appels avec ce type d’authentification.

  • Authentification Microsoft Entra ID : Vous pouvez authentifier un appel d’API à l’aide d’un jeton Microsoft Entra. Les jetons d’authentification sont incluses dans une requête sous la forme de l’en-tête Authorization. Le jeton fourni doit être précédé de Bearer. Par exemple : Bearer YOUR_AUTH_TOKEN. Vous pouvez lire notre guide pratique sur Authentification avec Microsoft Entra ID.

Gestion des versions d’API

Les API de service sont versionnées à l’aide du paramètre de requête api-version. Toutes les versions suivent la structure de date AAAA-MM-JJ. Par exemple :

POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT_NAME/completions?api-version=2024-02-01

Saisies semi-automatiques

Avec l’opération Achèvements, le modèle génère un ou plusieurs achèvements prédits en fonction d’une invite fournie. Le service peut également retourner les probabilités de jetons alternatifs à chaque position.

Créer une exécution

POST https://{your-resource-name}.openai.azure.com/openai/deployments/{deployment-id}/completions?api-version={api-version}

Paramètres de chemin d’accès

Paramètre Type Requis ? Description
your-resource-name string Obligatoire Nom de votre ressource Azure OpenAI.
deployment-id string Obligatoire Nom de déploiement que vous avez choisi lors du déploiement du modèle.
api-version string Obligatoire Version de l’API à utiliser pour cette opération. Cela suit le format AAAA-MM-JJ.

Versions prises en charge

Corps de la demande

Paramètre Type Requis ? Default Description
prompt chaîne ou tableau Facultatif <\|endoftext\|> La ou les invites pour lesquelles il faut générer des complétions, encodées sous forme de chaîne ou de tableau de chaînes. <\|endoftext\|> est le séparateur de documents que le modèle voit lors de l’apprentissage : si aucune invite n’est spécifiée, le modèle est donc généré comme s’il s’agissait du début d’un nouveau document.
max_tokens entier Facultatif 16 Nombre maximal de jetons à générer dans la saisie semi-automatique. Le nombre de jetons de votre invite plus max_tokens ne peut pas dépasser la longueur du contexte du modèle. La plupart des modèles ont une longueur de contexte de 2 048 jetons (à l’exception des modèles les plus récents, qui prennent en charge 4 096 jetons).
temperature nombre Facultatif 1 Température d’échantillonnage à utiliser, entre 0 et 2. Des valeurs plus élevées signifient que le modèle prend plus de risques. Essayez 0,9 pour plus d’applications créatives, et 0 (argmax sampling) pour une réponse bien définie. Nous vous recommandons généralement de modifier this ou top_p, mais pas les deux.
top_p nombre Facultatif 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 this ou température, mais pas les deux.
logit_bias carte Facultatif null Modifiez la probabilité que les jetons spécifiés apparaissent dans l’achèvement. Accepte un objet json qui mappe les jetons (spécifiés par leur ID de jeton dans le générateur de jetons GPT) avec une valeur de biais associée de -100 à 100. Vous pouvez utiliser cet outil de générateur de jetons (qui fonctionne pour GPT-2 et GPT-3) afin de convertir du texte en ID de jeton. Mathématiquement, le biais est ajouté aux logits générés par le modèle avant l’échantillonnage. L’effet exact varie selon le modèle, mais les valeurs comprises entre -1 et 1 doivent diminuer ou augmenter la probabilité de sélection; les valeurs telles que -100 ou 100 doivent entraîner une interdiction ou une sélection exclusive du jeton approprié. Par exemple, vous pouvez passer {"50256": -100} pour empêcher la génération du jeton <|endoftext|>.
user string Facultatif Identificateur unique représentant votre utilisateur final, qui peut vous aider à surveiller et à détecter des abus
n entier Facultatif 1 Nombre d’achèvements à générer pour chaque invite. Remarque : comme ce paramètre génère de nombreuses saisies semi-automatiques, il peut rapidement consommer votre quota de jetons. Utilisez-le avec précaution et assurez-vous que vous avez des paramètres raisonnables pour max_tokens et stop.
stream boolean Facultatif False Indique s’il faut renvoyer la progression partielle. Si cela est défini, les jetons sont envoyés en tant qu’événements envoyés par le serveur uniquement au fur et à mesure qu’ils deviennent disponibles, avec le flux arrêté par un message de données [DONE].
logprobs entier Facultatif null Incluez les probabilités de journal sur les jetons les plus probables, ainsi que les jetons choisis. Par exemple, si logprobs est égal à 10, l’API retourne une liste des 10 jetons les plus probables. L’API retourne toujours le logprob du jeton échantillonné. Il est donc possible qu’il y ait jusqu’à logprobs+1 éléments dans la réponse. Ce paramètre ne peut pas être employé avec gpt-35-turbo.
suffix string Facultatif null Suffixe qui vient après l’achèvement d’un texte inséré.
echo boolean Facultatif False Renvoyer l’invite en plus de l’achèvement. Ce paramètre ne peut pas être employé avec gpt-35-turbo.
stop chaîne ou tableau Facultatif null Jusqu’à quatre séquences dans lesquelles l’API cessera de générer d’autres jetons. Le texte retourné ne contient pas la séquence d’arrêt. Pour GPT-4 Turbo avec Vision, jusqu’à deux séquences sont prises en charge.
presence_penalty number Facultatif 0 Nombre compris entre -2.0 et 2.0. Les valeurs positives pénalisent les nouveaux tokens selon qu’ils apparaissent ou non dans le texte jusqu’à présent, ce qui augmente la probabilité que le modèle parle de nouveaux sujets.
frequency_penalty nombre Facultatif 0 Nombre compris entre -2.0 et 2.0. Les valeurs positives pénalisent les nouveaux jetons en fonction de leur fréquence existante dans le texte jusqu’à présent, ce qui réduit la probabilité que le modèle répète la même ligne mot pour mot.
best_of entier Facultatif 1 Génère des achèvements best_of côté serveur et retourne le « meilleur » d’entre eux (celui avec la probabilité de journal la plus faible par jeton). Les résultats ne peuvent pas être diffusés en continu. Lorsqu’il est utilisé avec n, best_of contrôle le nombre d’achèvements candidats et n spécifie le nombre de retours : best_of doit être supérieur à n. Remarque : comme ce paramètre génère de nombreuses saisies semi-automatiques, il peut rapidement consommer votre quota de jetons. Utilisez-le avec précaution et assurez-vous que vous avez des paramètres raisonnables pour max_tokens et stop. Ce paramètre ne peut pas être employé avec gpt-35-turbo.

Exemple de requête

curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT_NAME/completions?api-version=2024-02-01\
  -H "Content-Type: application/json" \
  -H "api-key: YOUR_API_KEY" \
  -d "{
  \"prompt\": \"Once upon a time\",
  \"max_tokens\": 5
}"

Exemple de réponse

{
    "id": "cmpl-4kGh7iXtjW4lc9eGhff6Hp8C7btdQ",
    "object": "text_completion",
    "created": 1646932609,
    "model": "ada",
    "choices": [
        {
            "text": ", a dark line crossed",
            "index": 0,
            "logprobs": null,
            "finish_reason": "length"
        }
    ]
}

Dans l’exemple de réponse, finish_reason est égal à stop. Si finish_reason est égal à content_filter, consultez notre guide de filtrage de contenu pour comprendre pourquoi cela se produit.

Incorporations

Obtenez une représentation vectorielle d’une entrée donnée qui peut être facilement consommée par des modèles Machine Learning et d’autres algorithmes.

Remarque

OpenAI autorise actuellement un plus grand nombre d’entrées de tableau avec text-embedding-ada-002. Azure OpenAI prend actuellement en charge jusqu’à 16 tableaux d’entrée pour text-embedding-ada-002 (Version 2). Les deux nécessitent que la limite maximale de jetons d’entrée par requête d’API reste inférieure à 8191 pour ce modèle.

Créer une incorporation

POST https://{your-resource-name}.openai.azure.com/openai/deployments/{deployment-id}/embeddings?api-version={api-version}

Paramètres de chemin d’accès

Paramètre Type Requis ? Description
your-resource-name string Obligatoire Nom de votre ressource Azure OpenAI.
deployment-id string Obligatoire Nom de votre modèle de déploiement. Vous devez d’abord déployer un modèle avant de pouvoir effectuer des appels.
api-version string Obligatoire Version de l’API à utiliser pour cette opération. Cela suit le format AAAA-MM-JJ.

Versions prises en charge

Corps de la demande

Paramètre Type Requis ? Default Description
input chaîne ou tableau Oui N/A Texte d’entrée pour lequel on veut obtenir des incorporations, encodé comme un tableau ou une chaîne. Le nombre de jetons d’entrée varie en fonction du modèle que vous utilisez. Uniquement text-embedding-ada-002 (Version 2) prend en charge l’entrée de tableau.
user string Non Null Identificateur unique représentant votre utilisateur final. Cela aidera Azure OpenAI à surveiller et à détecter les abus. Ne passez pas d’identificateurs d’informations personnelles à la place à l’aide de valeurs pseudo-anonymisées telles que les GUID
encoding_format string Non float Format dans lequel retourner les incorporations. La valeur peut être float ou base64. La valeur par défaut est float.

[Ajouté à 2024-03-01-preview].
dimensions entier Non Nombre de dimensions que les incorporations de sortie obtenues doivent avoir. Uniquement pris en charge dans les modèles text-embedding-3 et ultérieurs.

[Ajouté à 2024-03-01-preview]

Exemple de requête

curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT_NAME/embeddings?api-version=2024-02-01 \
  -H "Content-Type: application/json" \
  -H "api-key: YOUR_API_KEY" \
  -d "{\"input\": \"The food was delicious and the waiter...\"}"

Exemple de réponse

{
  "object": "list",
  "data": [
    {
      "object": "embedding",
      "embedding": [
        0.018990106880664825,
        -0.0073809814639389515,
        .... (1024 floats total for ada)
        0.021276434883475304,
      ],
      "index": 0
    }
  ],
  "model": "text-similarity-babbage:001"
}

Complétions de conversation

Créez des saisies semi-automatiques aux messages de conversation avec les modèles GPT-35-Turbo et GPT-4.

Créer des complétions de conversation

POST https://{your-resource-name}.openai.azure.com/openai/deployments/{deployment-id}/chat/completions?api-version={api-version}

Paramètres de chemin d’accès

Paramètre Type Requis ? Description
your-resource-name string Obligatoire Nom de votre ressource Azure OpenAI.
deployment-id string Obligatoire Nom de votre modèle de déploiement. Vous devez d’abord déployer un modèle avant de pouvoir effectuer des appels.
api-version string Obligatoire Version de l’API à utiliser pour cette opération. Cela suit le format AAAA-MM-JJ ou AAAA-MM-JJ-préversion.

Versions prises en charge

Corps de la demande

Le corps de la requête se compose d’une série de messages. Le modèle génère une réponse au dernier message, en utilisant des messages antérieurs comme contexte.

Paramètre Type Requis ? Default Description
messages tableau Oui S/O Série de messages associés à cette demande de saisie semi-automatique de conversation. Il doit inclure les messages précédents dans la conversation. Chaque message a un role et content.
role string Oui S/O Indique qui donne le message actuel. Peut être system,user,assistant,toolou function.
content chaîne ou tableau Oui S/O Contenu du message. Il doit s’agir d’une chaîne, sauf dans un scénario activé par Vision. Si elle fait partie du message user, à l’aide du modèle GPT-4 Turbo avec Vision, avec la dernière version de l’API, alors content doit être un tableau de structures, où chaque élément représente du texte ou une image :
  • text : le texte d’entrée est représenté sous forme de structure avec les propriétés suivantes :
    • type = « text »
    • text = le texte d’entrée
  • images : une image d’entrée est représentée sous la forme d’une structure avec les propriétés suivantes :
    • type = « image_url »
    • image_url = une structure avec les propriétés suivantes :
      • url = l’URL de l’image
      • (facultatif) detail = high, low ou auto
contentPart object Non N/A Partie du message multimodal d’un utilisateur. Il peut s’agir d’un type de texte ou d’un type d’image. Si il y a du texte, il s’agit d’une chaîne de texte. Si c’est une image, il s’agit d’un contentPartImage objet.
contentPartImage object Non N/A Représente une image chargée par l’utilisateur. Il a une propriété url, qui est une URL de l’image ou les données d’image codées en base 64. Il a également une propriété detail qui peut être auto, lowou high.
enhancements object Non N/A Représente les fonctionnalités d’amélioration de vision demandées pour la conversation. Il a des propriétés grounding et ocr, chacune ayant une propriété enabled booléenne. Utilisez-les pour demander le service OCR et/ou le service de détection d’objets/de mise au sol [Ce paramètre d’aperçu n’est pas disponible dans l’API 2024-02-01 GA et n’est plus disponible dans les API de préversion après 2024-03-01-preview.]
dataSources object Non N/A Représente des données de ressources supplémentaires. Les données de ressources Vision par ordinateur sont nécessaires pour améliorer Vision. Il a une propriété type qui doit être "AzureComputerVision", et une propriété parameters, qui a une propriété endpoint et key. Ces chaînes doivent être définies sur l’URL du point de terminaison et la clé d’accès de votre ressource Vision par ordinateur.

Exemple de requête

Conversation en texte seule

curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT_NAME/chat/completions?api-version=2024-02-01 \
  -H "Content-Type: application/json" \
  -H "api-key: YOUR_API_KEY" \
  -d '{"messages":[{"role": "system", "content": "You are a helpful assistant."},{"role": "user", "content": "Does Azure OpenAI support customer managed keys?"},{"role": "assistant", "content": "Yes, customer managed keys are supported by Azure OpenAI."},{"role": "user", "content": "Do other Azure AI services support this too?"}]}'

Conversation avec vision

curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT_NAME/chat/completions?api-version=2023-12-01-preview \
  -H "Content-Type: application/json" \
  -H "api-key: YOUR_API_KEY" \
  -d '{"messages":[{"role":"system","content":"You are a helpful assistant."},{"role":"user","content":[{"type":"text","text":"Describe this picture:"},{ "type": "image_url", "image_url": { "url": "https://learn.microsoft.com/azure/ai-services/computer-vision/media/quickstarts/presentation.png", "detail": "high" } }]}]}'

Conversation améliorée avec vision

  • Non pris en charge avec le modèle GPT-4 Turbo GAgpt-4Version :turbo-2024-04-09
  • Non pris en charge avec les versions 2024-02-01et2024-04-01-preview et versions ultérieures de l’API.
curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT_NAME/extensions/chat/completions?api-version=2023-12-01-preview \
  -H "Content-Type: application/json" \
  -H "api-key: YOUR_API_KEY" \
  -d '{"enhancements":{"ocr":{"enabled":true},"grounding":{"enabled":true}},"dataSources":[{"type":"AzureComputerVision","parameters":{"endpoint":" <Computer Vision Resource Endpoint> ","key":"<Computer Vision Resource Key>"}}],"messages":[{"role":"system","content":"You are a helpful assistant."},{"role":"user","content":[{"type":"text","text":"Describe this picture:"},{"type":"image_url","image_url":"https://learn.microsoft.com/azure/ai-services/computer-vision/media/quickstarts/presentation.png"}]}]}'

Exemple de réponse

{
    "id": "chatcmpl-6v7mkQj980V1yBec6ETrKPRqFjNw9",
    "object": "chat.completion",
    "created": 1679072642,
    "model": "gpt-35-turbo",
    "usage":
    {
        "prompt_tokens": 58,
        "completion_tokens": 68,
        "total_tokens": 126
    },
    "choices":
    [
        {
            "message":
            {
                "role": "assistant",
                "content": "Yes, other Azure AI services also support customer managed keys.
                    Azure AI services offer multiple options for customers to manage keys, such as
                    using Azure Key Vault, customer-managed keys in Azure Key Vault or
                    customer-managed keys through Azure Storage service. This helps customers ensure
                    that their data is secure and access to their services is controlled."
            },
            "finish_reason": "stop",
            "index": 0
        }
    ]
}

Mise en forme de sortie ajustée pour faciliter la lecture. La sortie réelle est un seul bloc de texte sans saut de ligne.

Dans l’exemple de réponse, finish_reason est égal à stop. Si finish_reason est égal à content_filter, consultez notre guide de filtrage de contenu pour comprendre pourquoi cela se produit.

Important

Les paramètres functions et function_call ont été déconseillés avec la publication de la version 2023-12-01-preview de l’API. Le remplacement de functions est le paramètre tools. Le remplacement de function_call est le paramètre tool_choice. L’appel de fonction parallèle, qui a été introduit dans le cadre du 2023-12-01-preview, n’est pris en charge qu’avec gpt-35-turbo (1106) et gpt-4 (1106-preview), également connu sous le nom de Préversion de GPT-4 Turbo.

Paramètre Type Requis ? Default Description
messages tableau Requis Collection de messages de contexte associés à cette demande de complétion de conversation. L’utilisation classique commence par un message de conversation pour le rôle Système qui fournit des instructions pour le comportement de l’Assistant, suivi d’une alternance de messages entre les rôles Utilisateur et Assistant.
temperature number Facultatif 1 Température d’échantillonnage à utiliser, entre 0 et 2. Des valeurs plus élevées telles que 0,8 rendent la sortie plus aléatoire, tandis que des valeurs inférieures telles que 0,2 la rendent plus ciblée et déterministe. Nous vous recommandons généralement de modifier cela ou top_p mais pas les deux.
n entier Facultatif 1 Nombre d’options de complétion de conversation à générer pour chaque message d’entrée.
stream boolean Facultatif false Si cette option est définie, des deltas de message partiels sont envoyés, comme dans ChatGPT. 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, avec le flux arrêté par un message data: [DONE]. »
stop chaîne ou tableau Facultatif null Jusqu’à 4 séquences dans lesquelles l’API cesse de générer d’autres jetons.
max_tokens entier Facultatif inf Nombre maximal de jetons autorisés pour la réponse générée. Par défaut, le nombre de jetons que le modèle peut retourner est (4 096 : jetons d’invite).
presence_penalty nombre Facultatif 0 Nombre compris entre -2.0 et 2.0. Les valeurs positives pénalisent les nouveaux tokens selon qu’ils apparaissent ou non dans le texte jusqu’à présent, ce qui augmente la probabilité que le modèle parle de nouveaux sujets.
frequency_penalty nombre Facultatif 0 Nombre compris entre -2.0 et 2.0. Les valeurs positives pénalisent les nouveaux jetons en fonction de leur fréquence existante dans le texte jusqu’à présent, ce qui réduit la probabilité que le modèle répète la même ligne mot pour mot.
logit_bias object Facultatif null Modifiez la probabilité que les jetons spécifiés apparaissent dans l’achèvement. Accepte un objet JSON qui mappe des jetons (spécifiés par leur ID de jeton dans le générateur de jetons) avec une valeur de biais associée de -100 à 100. Mathématiquement, le biais est ajouté aux logits générés par le modèle avant l’échantillonnage. L’effet exact varie selon le modèle, mais les valeurs comprises entre -1 et 1 doivent diminuer ou augmenter la probabilité de sélection; les valeurs telles que -100 ou 100 doivent entraîner une interdiction ou une sélection exclusive du jeton approprié.
user string Facultatif Identificateur unique représentant votre utilisateur final, qui peut aider Azure OpenAI à surveiller et à détecter des abus.
function_call Facultatif [Deprecated in 2023-12-01-preview replacement parameter is tools_choice]Contrôle la façon dont le modèle répond aux appels de fonction. « none » signifie que le modèle n’appelle pas de fonction et répond à l’utilisateur final. auto signifie que le modèle peut choisir entre un utilisateur final ou appeler une fonction. La spécification d’une fonction particulière via {"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. Ce paramètre nécessite la version 2023-07-01-preview de l’API
functions FunctionDefinition[] Facultatif [Deprecated in 2023-12-01-preview replacement paremeter is tools] Liste des fonctions pour lesquelles le modèle peut générer des entrées JSON. Ce paramètre nécessite la version 2023-07-01-preview de l’API
tools chaîne (Type de l’outil. Seul function est pris en charge.) Facultatif 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. Ce paramètre nécessite la version 2023-12-01-preview de l’API
tool_choice chaîne ou objet Facultatif 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. 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. Ce paramètre nécessite la version 2023-12-01-preview ou ultérieure de l’API.

ChatMessage

Message unique, attribué à un rôle dans une interaction de fin de conversation.

Nom Type Description
contenu string Texte associé à cette charge utile de message.
function_call FunctionCall Nom et arguments d’une fonction qui doit être appelée, comme généré par le modèle.
name chaîne Le name de l’auteur de ce message. Le name est requis si le rôle est function, et il doit s’agir du nom de la fonction dont la réponse se trouve dans le content. Peut contenir a-z, A-Z, 0-9 et des tirets bas, avec une longueur maximale de 64 caractères.
role ChatRole Rôle associé à cette charge utile de message

ChatRole

Description de l’objectif prévu d’un message dans une interaction de complétion de conversation.

Nom Type Description
assistant string Rôle qui fournit des réponses à une entrée indiquée par le système et à l’invite de l’utilisateur.
function string Rôle qui fournit des résultats de fonction pour les complétions de conversation.
système string Rôle qui indique ou définit le comportement de l’Assistant.
utilisateur string Rôle qui fournit une entrée pour les complétions de conversation.

Fonction

Cette option est utilisée avec le paramètre tools qui a été ajouté dans la version 2023-12-01-preview de l’API.

Nom Type Description
description string Description de l’utilité 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. Consultez la référence de schéma JSON pour obtenir de la documentation sur le format. »

FunctionCall-Deprecated

Nom et arguments d’une fonction qui doit être appelée, comme généré par le modèle. Cela nécessite la version 2023-07-01-preview de l’API

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. Le modèle ne génère pas toujours un JSON valide et peut fabriquer des paramètres 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.

FunctionDefinition-Deprecated

Définition d’une fonction spécifiée par l’appelant que les complétions de conversation instantanée peuvent appeler en réponse à une entrée utilisateur correspondante. Cela nécessite la version 2023-07-01-preview de l’API

Nom Type Description
description string Description du rôle de la fonction. Le modèle utilise cette description lors de la sélection de la fonction et de l’interprétation de ses paramètres.
name chaîne Nom de la fonction à appeler.
parameters Paramètres acceptés par les fonctions, décrits sous la forme d’un objet de schéma JSON.

Extensions de saisie semi-automatique

La documentation de cette section a été déplacée. Consultez plutôt la documentation de référence Azure OpenAI sur vos données.

Génération d’images

Demander une image générée (DALL-E 3)

Générez et récupérez un lot d’images à partir d’un texte de légende.

POST https://{your-resource-name}.openai.azure.com/openai/deployments/{deployment-id}/images/generations?api-version={api-version} 

Paramètres de chemin d’accès

Paramètre Type Requis ? Description
your-resource-name string Obligatoire Nom de votre ressource Azure OpenAI.
deployment-id string Requise Le nom de votre modèle de déploiement DALL-E 3, tel que MyDalle3. Vous devez d’abord déployer un modèle DALL-E 3 avant de pouvoir effectuer des appels.
api-version string Obligatoire Version de l’API à utiliser pour cette opération. Cela suit le format AAAA-MM-JJ.

Versions prises en charge

Corps de la demande

Paramètre Type Requis ? Default Description
prompt string Obligatoire Description textuelle de la ou des images souhaitées. La longueur maximale est de 4 000 caractères.
n entier Facultatif 1 Nombre d’images à générer. Seul n=1 est pris en charge pour DALL-E 3.
size string Facultatif 1024x1024 Taille des images générées. Doit être 1792x1024, 1024x1024 ou 1024x1792.
quality string Facultatif standard La qualité des images générées. Doit être hd ou standard.
response_format string Facultatif url Le format dans lequel les images générées sont retournées doit être url (une URL pointant vers l’image) ou b64_json (le code de base 64 octets au format JSON).
style string Facultatif vivid Le style des images générées. Doit être natural ou vivid (pour les images hyperréalistes/dramatiques).
user string Facultatif Identificateur unique représentant votre utilisateur final, qui peut vous aider à monitorer et à détecter des abus.

Exemple de requête

curl -X POST https://{your-resource-name}.openai.azure.com/openai/deployments/{deployment-id}/images/generations?api-version=2023-12-01-preview \
  -H "Content-Type: application/json" \
  -H "api-key: YOUR_API_KEY" \
  -d '{
    "prompt": "An avocado chair",
    "size": "1024x1024",
    "n": 1,
    "quality": "hd", 
    "style": "vivid"
  }'

Exemple de réponse

L’opération retourne un code d’état 202 et un objet JSON GenerateImagesResponse contenant l’ID et l’état de l’opération.

{ 
    "created": 1698116662, 
    "data": [ 
        { 
            "url": "url to the image", 
            "revised_prompt": "the actual prompt that was used" 
        }, 
        { 
            "url": "url to the image" 
        },
        ...
    ]
} 

Demander une image générée (DALL-E 2 en préversion)

Générez un lot d’images à partir d’un texte légende.

POST https://{your-resource-name}.openai.azure.com/openai/images/generations:submit?api-version={api-version}

Paramètres de chemin d’accès

Paramètre Type Requis ? Description
your-resource-name string Obligatoire Nom de votre ressource Azure OpenAI.
api-version string Obligatoire Version de l’API à utiliser pour cette opération. Cela suit le format AAAA-MM-JJ.

Versions prises en charge

Corps de la demande

Paramètre Type Requis ? Default Description
prompt string Obligatoire Description textuelle de la ou des images souhaitées. La longueur maximale est de 1 000 caractères.
n entier Facultatif 1 Nombre d’images à générer. Doit être compris entre 1 et 5.
size string Facultatif 1024 x 1024 Taille des images générées. Doit être 256x256, 512x512 ou 1024x1024.

Exemple de requête

curl -X POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/images/generations:submit?api-version=2023-06-01-preview \
  -H "Content-Type: application/json" \
  -H "api-key: YOUR_API_KEY" \
  -d '{
"prompt": "An avocado chair",
"size": "512x512",
"n": 3
}'

Exemple de réponse

L’opération retourne un code d’état 202 et un objet JSON GenerateImagesResponse contenant l’ID et l’état de l’opération.

{
  "id": "f508bcf2-e651-4b4b-85a7-58ad77981ffa",
  "status": "notRunning"
}

Obtenir un résultat d’image généré (DALL-E 2 en préversion)

Utilisez cette API pour récupérer les résultats d’une opération de génération d’image. La génération d’images est actuellement disponible uniquement avec api-version=2023-06-01-preview.

GET https://{your-resource-name}.openai.azure.com/openai/operations/images/{operation-id}?api-version={api-version}

Paramètres de chemin d’accès

Paramètre Type Requis ? Description
your-resource-name string Obligatoire Nom de votre ressource Azure OpenAI.
operation-id string Obligatoire GUID qui identifie la demande de génération d’image d’origine.

Versions prises en charge

Exemple de requête

curl -X GET "https://{your-resource-name}.openai.azure.com/openai/operations/images/{operation-id}?api-version=2023-06-01-preview"
-H "Content-Type: application/json"
-H "Api-Key: {api key}"

Exemple de réponse

En cas de réussite, l’opération retourne un code d’état 200 et un objet JSON OperationResponse. Le champ status peut être "notRunning" (la tâche est mise en file d’attente mais n’a pas encore démarré), "running", "succeeded", "canceled" (la tâche a expiré), "failed", ou "deleted". Un état succeeded indique que l’image générée est disponible en téléchargement à l’URL donnée. Si plusieurs images ont été générées, leurs URL sont toutes retournées dans le champ result.data.

{
  "created": 1685064331,
  "expires": 1685150737,
  "id": "4b755937-3173-4b49-bf3f-da6702a3971a",
  "result": {
    "data": [
      {
        "url": "<URL_TO_IMAGE>"
      },
      {
        "url": "<URL_TO_NEXT_IMAGE>"
      },
      ...
    ]
  },
  "status": "succeeded"
}

Supprimer une image générée à partir du serveur (DALL-E 2 en préversion)

Vous pouvez utiliser l’ID d’opération retourné par la demande pour supprimer l’image correspondante du serveur Azure. Les images générées sont automatiquement supprimées après 24 heures par défaut, mais vous pouvez déclencher la suppression plus tôt si vous le souhaitez.

DELETE https://{your-resource-name}.openai.azure.com/openai/operations/images/{operation-id}?api-version={api-version}

Paramètres de chemin d’accès

Paramètre Type Requis ? Description
your-resource-name string Obligatoire Nom de votre ressource Azure OpenAI.
operation-id string Obligatoire GUID qui identifie la demande de génération d’image d’origine.

Versions prises en charge

Exemple de requête

curl -X DELETE "https://{your-resource-name}.openai.azure.com/openai/operations/images/{operation-id}?api-version=2023-06-01-preview"
-H "Content-Type: application/json"
-H "Api-Key: {api key}"

response

L’opération retourne un code d’état 204 si elle réussit. Cette API réussit uniquement si l’opération est dans un état final (et non running).

Reconnaissance vocale

Vous pouvez utiliser un modèle Whisper dans Azure OpenAI Service pour la transcription de reconnaissance vocale ou la traduction vocale. Pour plus d’informations sur l’utilisation d’un modèle Whisper, consultez le Démarrage rapide et la Vue d’ensemble du modèle Whisper.

Demander une transcription de parole en texte

Transcrit un fichier audio.

POST https://{your-resource-name}.openai.azure.com/openai/deployments/{deployment-id}/audio/transcriptions?api-version={api-version}

Paramètres de chemin d’accès

Paramètre Type Requis ? Description
your-resource-name string Obligatoire Nom de votre ressource Azure OpenAI.
deployment-id string Requise Nom de votre déploiement de modèle Whisper, par exemple MyWhisperDeployment. Vous devez d’abord déployer un modèle Whisper avant de pouvoir effectuer des appels.
api-version string Obligatoire Version de l’API à utiliser pour cette opération. La valeur suit le format AAAA-MM-JJ.

Versions prises en charge

Corps de la demande

Paramètre Type Requis ? Default Description
file fichier Oui S/O Objet de fichier audio (et non nom de fichier) à transcrire, dans l’un des formats suivants : flac, mp3, mp4, mpeg, mpga, m4a, ogg, wav ou webm.

Dans Azure OpenAI Service, la limite de taille de fichier pour un modèle Whisper est de 25 Mo. Si vous devez transcrire un fichier de plus de 25 Mo, divisez-le en blocs. Vous pouvez également utiliser l’API de transcription par lots d’Azure AI Speech.

Vous pouvez obtenir des exemples de fichiers audio à partir du référentiel du SDK Azure AI Speech sur GitHub.
language string Non Null La langue de l’audio d’entrée, par exemple fr. Donner la langue d’entrée au format ISO-639-1 améliore la précision et la latence.

Pour obtenir la liste des langues prises en charge, consultez la documentation OpenAI.
prompt string Non Null Un texte facultatif pour guider le style du modèle ou continuer un segment audio précédent. L’invite doit correspondre à la langue audio.

Pour plus d’informations sur les invites, notamment des exemples de cas d’usage, consultez la documentation OpenAI.
response_format string Non json Format de la sortie de transcription, dans l’une des options suivantes : json, text, srt, verbose_json ou vtt.

La valeur par défaut est json.
temperature nombre Non 0 Température d’échantillonnage comprise entre 0 et 1.

Des valeurs plus élevées telles que 0,8 rendent la sortie plus aléatoire, tandis que des valeurs inférieures telles que 0,2 la rendent plus ciblée et déterministe. Si la valeur est 0, le modèle utilise la probabilité logarithmique pour augmenter automatiquement la température jusqu’à ce que certains seuils soient atteints.

La valeur par défaut est 0.
timestamp_granularities tableau Facultatif segment Les granularités d’horodatage à remplir pour cette transcription. response_format doit être défini verbose_json pour utiliser des granularités d’horodatage. L’une ou l’autre de ces options sont prises en charge : word ou segment. Remarque : il n’existe aucune latence supplémentaire pour les horodatages de segment, mais la génération d’horodatages de mots entraîne une latence supplémentaire. [Fonctionnalité ajoutée dans 2024-04-01-preview]

Exemple de requête

curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT_NAME/audio/transcriptions?api-version=2023-09-01-preview \
  -H "Content-Type: multipart/form-data" \
  -H "api-key: $YOUR_API_KEY" \
  -F file="@./YOUR_AUDIO_FILE_NAME.wav" \
  -F "language=en" \
  -F "prompt=The transcript contains zoology terms and geographical locations." \
  -F "temperature=0" \
  -F "response_format=srt"

Exemple de réponse

1
00:00:00,960 --> 00:00:07,680
The ocelot, Lepardus paradalis, is a small wild cat native to the southwestern United States,

2
00:00:07,680 --> 00:00:13,520
Mexico, and Central and South America. This medium-sized cat is characterized by

3
00:00:13,520 --> 00:00:18,960
solid black spots and streaks on its coat, round ears, and white neck and undersides.

4
00:00:19,760 --> 00:00:27,840
It weighs between 8 and 15.5 kilograms, 18 and 34 pounds, and reaches 40 to 50 centimeters

5
00:00:27,840 --> 00:00:34,560
16 to 20 inches at the shoulders. It was first described by Carl Linnaeus in 1758.

6
00:00:35,360 --> 00:00:42,880
Two subspecies are recognized, L. p. paradalis and L. p. mitis. Typically active during twilight

7
00:00:42,880 --> 00:00:48,480
and at night, the ocelot tends to be solitary and territorial. It is efficient at climbing,

8
00:00:48,480 --> 00:00:54,480
leaping, and swimming. It preys on small terrestrial mammals such as armadillo, opossum,

9
00:00:54,480 --> 00:00:56,480
and lagomorphs.

Demander une traduction par reconnaissance vocale

Traduit un fichier audio d’une autre langue vers l’anglais. Pour obtenir la liste des langues prises en charge, consultez la documentation OpenAI.

POST https://{your-resource-name}.openai.azure.com/openai/deployments/{deployment-id}/audio/translations?api-version={api-version}

Paramètres de chemin d’accès

Paramètre Type Requis ? Description
your-resource-name string Obligatoire Nom de votre ressource Azure OpenAI.
deployment-id string Requise Nom de votre déploiement de modèle Whisper, par exemple MyWhisperDeployment. Vous devez d’abord déployer un modèle Whisper avant de pouvoir effectuer des appels.
api-version string Obligatoire Version de l’API à utiliser pour cette opération. La valeur suit le format AAAA-MM-JJ.

Versions prises en charge

Corps de la demande

Paramètre Type Requis ? Default Description
file fichier Oui N/A Objet de fichier audio (et non un nom de fichier) à transcrire, dans l’un des formats suivants : flac, mp3, mp4, mpeg, mpga, m4a, ogg, wav ou webm.

La taille limite de fichier pour le modèle Whisper d’Azure OpenAI est de 25 Mo. Si vous devez transcrire un fichier de plus de 25 Mo, divisez-le en blocs.

Vous pouvez télécharger des exemples de fichiers audio à partir du référentiel du SDK Azure AI Speech sur GitHub.
prompt string Non Null Un texte facultatif pour guider le style du modèle ou continuer un segment audio précédent. L’invite doit correspondre à la langue audio.

Pour plus d’informations sur les invites, notamment des exemples de cas d’usage, consultez la documentation OpenAI.
response_format string Non json Format de la sortie de transcription, dans l’une des options suivantes : json, text, srt, verbose_json ou vtt.

La valeur par défaut est json.
temperature nombre Non 0 Température d’échantillonnage comprise entre 0 et 1.

Des valeurs plus élevées telles que 0,8 rendent la sortie plus aléatoire, tandis que des valeurs inférieures telles que 0,2 la rendent plus ciblée et déterministe. Si la valeur est 0, le modèle utilise la probabilité logarithmique pour augmenter automatiquement la température jusqu’à ce que certains seuils soient atteints.

La valeur par défaut est 0.

Exemple de requête

curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT_NAME/audio/translations?api-version=2023-09-01-preview \
  -H "Content-Type: multipart/form-data" \
  -H "api-key: $YOUR_API_KEY" \
  -F file="@./YOUR_AUDIO_FILE_NAME.wav" \
  -F "temperature=0" \
  -F "response_format=json"

Exemple de réponse

{
  "text": "Hello, my name is Wolfgang and I come from Germany. Where are you heading today?"
}

Synthèse vocale

Synthétiser la conversion de texte par synthèse vocale.

POST https://{your-resource-name}.openai.azure.com/openai/deployments/{deployment-id}/audio/speech?api-version={api-version}

Paramètres de chemin d’accès

Paramètre Type Requis ? Description
your-resource-name string Obligatoire Nom de votre ressource Azure OpenAI.
deployment-id string Requis Nom de votre modèle de déploiement de synthèse vocale, tel que MyTextToSpeechDeployment. Vous devez d’abord déployer un modèle de synthèse vocale (par exemple tts-1 ou tts-1-hd) avant de pouvoir effectuer des appels.
api-version string Obligatoire Version de l’API à utiliser pour cette opération. La valeur suit le format AAAA-MM-JJ.

Versions prises en charge

Corps de la demande

Paramètre Type Requis ? Default Description
model string Oui S/O Un des modèles TTS disponibles : tts-1 ou tts-1-hd
input string Oui S/O Texte pour lequel générer l’audio. La longueur maximale est de 4096 caractères. Spécifiez le texte d’entrée dans la langue de votre choix.1
voice string Oui S/O Voix à utiliser lors de la génération de l’audio. Les voix prises en charge sont alloy, echo, fable, onyx, nova et shimmer. Les aperçus des voix sont disponibles dans le guide de synthèse vocale OpenAI.

1 Les modèles de synthèse vocale prennent généralement en charge les mêmes langues que le modèle Whisper. Pour obtenir la liste des langues prises en charge, consultez la documentation OpenAI.

Exemple de requête

curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT_NAME/audio/speech?api-version=2024-02-15-preview \
 -H "api-key: $YOUR_API_KEY" \
 -H "Content-Type: application/json" \
 -d '{
    "model": "tts-hd",
    "input": "I'm excited to try text to speech.",
    "voice": "alloy"
}' --output speech.mp3

Exemple de réponse

La reconnaissance vocale est retournée en tant que fichier audio de la requête précédente.

API de gestion

Le déploiement d’Azure OpenAI s’effectue dans le cadre d’Azure AI services. Tous les services Azure AI s’appuient sur le même ensemble d’API de gestion pour les opérations de création, de mise à jour et de suppression. Les API de gestion sont également utilisées pour déployer des modèles dans une ressource Azure OpenAI.

Documentation de référence sur les API de gestion

Étapes suivantes

En savoir plus sur les modèles et l’optimisation avec l’API REST. Découvrez-en plus sur les modèles sous-jacents d’Azure OpenAI.