Utiliser des modèles de conversation compatibles avec la vision

Les modèles de conversation compatibles avec vision sont de grands modèles modals (LMM) développés par OpenAI qui peuvent analyser des images et fournir des réponses textuelles aux questions à leur sujet. Ils incorporent à la fois le traitement du langage naturel et la compréhension visuelle. Les modèles de vision actuels sont les modèles de raisonnement de série o, la série GPT-5, la série GPT-4.1, GPT-4.5, la série GPT-4o.

Les modèles compatibles avec la vision peuvent répondre à des questions générales sur les éléments présents dans les images que vous chargez.

Pointe

Pour utiliser des modèles compatibles avec la vision, vous appelez l’API De saisie semi-automatique de conversation sur un modèle pris en charge que vous avez déployé. Si vous n’êtes pas familiarisé avec l’API De saisie semi-automatique de conversation, consultez le guide pratique de conversation compatible vision.

Quickstart

Commencez à utiliser des images dans vos conversations avec Azure OpenAI dans Microsoft modèles Foundry.

Utilisez cet article pour commencer à utiliser Microsoft Foundry pour déployer et tester un modèle d’achèvement de conversation avec compréhension d’image.

Conditions préalables

  • Un abonnement Azure. Créez-en un gratuitement.
  • Une fois que vous disposez de votre abonnement Azure, Créer une ressource OpenAI < Azure/sb0>créer une ressource OpenAI Azure . Pour plus d’informations sur la création de ressources, consultez le guide de déploiement des ressources.
  • Un projet Foundry avec votre ressource OpenAI Azure ajoutée en tant que connexion.

Préparer votre média

Vous avez besoin d’une image pour suivre ce guide de démarrage rapide. Vous pouvez utiliser cet exemple d’image ou toute autre image disponible.

Photo d’un accident de voiture qui peut être utilisé pour suivre le guide de démarrage rapide.

Accéder à Foundry

Pointe

Si vous avez déjà déployé un modèle compatible vision, passez à démarrer une session de conversation pour analyser des images.

  1. Accédez à Foundry et connectez-vous avec les informations d’identification associées à votre ressource OpenAI Azure. Pendant ou après le flux de travail de connexion, sélectionnez le répertoire approprié, Azure abonnement et Azure ressource OpenAI.
  2. Sélectionnez le projet dans lequel vous souhaitez travailler.
  3. Dans le menu de navigation de gauche, sélectionnez Modèles + points de terminaison , puis sélectionnez + Déployer le modèle.
  4. Choisissez un déploiement compatible avec l’image en sélectionnant le nom du modèle : gpt-4o ou gpt-4o-mini. Dans la fenêtre qui s’affiche, sélectionnez un nom et un type de déploiement. Vérifiez que votre Azure ressource OpenAI est connectée. Pour plus d’informations sur le déploiement de modèles, consultez le guide de déploiement de ressources.
  5. Sélectionnez Déployer.
  6. Ensuite, sélectionnez votre nouveau modèle et sélectionnez Ouvrir dans le terrain de jeux. Dans le terrain de jeu de conversation, le déploiement que vous avez créé doit être sélectionné dans la liste déroulante Déploiement .

Terrain

Dans cette session de conversation, vous demandez à l’assistant de vous aider à comprendre les images que vous entrez.

Pour obtenir de l’aide générale sur la configuration de l’Assistant, les sessions de conversation, les paramètres et les panneaux, reportez-vous au guide de démarrage rapide de conversation.

Démarrer une session de conversation pour analyser des images

Dans cette session de conversation, vous demandez à l’assistant de comprendre les images que vous entrez.

  1. Pour démarrer, vérifiez que votre déploiement compatible avec l’image est sélectionné dans la liste déroulante Déploiement .

  2. Dans la zone de texte contextuelle du panneau Configuration , indiquez cette invite pour guider l’Assistant : "You're an AI assistant that helps people find information." Vous pouvez également adapter l’invite à votre image ou scénario.

    Note

    Nous vous recommandons de mettre à jour le message système pour qu’il soit spécifique à la tâche afin d’éviter les réponses inutiles du modèle.

  3. Sélectionnez Appliquer les modifications pour enregistrer vos modifications.

  4. Dans le volet de session de conversation, sélectionnez le bouton pièce jointe, puis chargez l’image. Choisissez votre image.

  5. Ajoutez l’invite suivante dans le champ de conversation : Describe this imagepuis sélectionnez l’icône d’envoi pour l’envoyer.

  6. L’icône d’envoi est remplacée par un bouton d’arrêt. Si vous le sélectionnez, l’Assistant cesse de traiter votre demande. Pour ce guide de démarrage rapide, laissez l’assistant terminer sa réponse.

  7. L’assistant répond avec une description de l’image.

  8. Posez une question de suivi relative à l’analyse de votre image. Vous pourriez entrer, "What should I highlight about this image to my insurance company?".

  9. Vous devez recevoir une réponse pertinente similaire à ce qui s’affiche ici :

    When reporting the incident to your insurance company, you should highlight the following key points from the image:  
    
    1. **Location of Damage**: Clearly state that the front end of the car, particularly the driver's side, is damaged. Mention the crumpled hood, broken front bumper, and the damaged left headlight.  
    
    2. **Point of Impact**: Indicate that the car has collided with a guardrail, which may suggest that no other vehicles were involved in the accident.  
    
    3. **Condition of the Car**: Note that the damage seems to be concentrated on the front end, and there is no visible damage to the windshield or rear of the car from this perspective.  
    
    4. **License Plate Visibility**: Mention that the license plate is intact and can be used for identification purposes.  
    
    5. **Environment**: Report that the accident occurred near a roadside with a guardrail, possibly in a rural or semi-rural area, which might help in establishing the accident location and context.  
    
    6. **Other Observations**: If there were any other circumstances or details not visible in the image that may have contributed to the accident, such as weather conditions, road conditions, or any other relevant information, be sure to include those as well.  
    
    Remember to be factual and descriptive, avoiding speculation about the cause of the accident, as the insurance company will conduct its own investigation.
    

Afficher et exporter du code

À tout moment dans la session de conversation, vous pouvez activer le commutateur Afficher le json brut en haut de la fenêtre de conversation pour voir la conversation mise en forme au format JSON. Voici ce qu’il ressemble au début de la session de conversation de démarrage rapide :

[
	{
		"role": "system",
		"content": [
			"You are an AI assistant that helps people find information."
		]
	},
]

Nettoyer les ressources

Si vous souhaitez nettoyer et supprimer une ressource OpenAI Azure, vous pouvez supprimer la ressource ou le groupe de ressources. La suppression du groupe de ressources supprime également toutes les autres ressources associées.

Utilisez cet article pour commencer à utiliser les API REST OpenAI Azure pour déployer et utiliser des modèles de conversation compatibles avec la vision.

Conditions préalables

Note

Il n’est actuellement pas pris en charge pour désactiver le filtrage de contenu pour le modèle GPT-4 Turbo avec Vision.

Récupérer la clé et le point de terminaison

Pour appeler correctement les API OpenAI Azure, vous avez besoin des informations suivantes sur votre ressource OpenAI Azure :

Variable Nom Valeur
Terminaison api_base La valeur du point de terminaison se trouve sous Keys et Endpoint pour votre ressource dans le portail Azure. Vous pouvez également trouver le point de terminaison via la page Déploiements dans le portail Foundry. Un exemple de point de terminaison est : https://docs-test-001.openai.azure.com/.
Clé api_key La valeur de clé se trouve également sous Keys et Endpoint pour votre ressource dans le portail Azure. Azure génère deux clés pour votre ressource. Vous pouvez utiliser l’une ou l’autre valeur.

Accédez à votre ressource dans le portail Azure. Dans le volet de navigation, sélectionnez Clés et point de terminaison sous Gestion des ressources. Copiez la valeur du point de terminaison et une valeur de clé d’accès. Vous pouvez utiliser la valeur KEY 1 ou KEY 2 . L’utilisation de deux clés vous permet de faire pivoter et de régénérer en toute sécurité les clés sans provoquer d’interruption de service.

Screenshot qui affiche la page Clés et point de terminaison d’une ressource OpenAI Azure dans le portail Azure.

Créer une application Python

Créez un fichier Python nommé quickstart.py. Ouvrez le nouveau fichier dans votre éditeur ou IDE préféré.

  1. Remplacez le contenu de quickstart.py par le code suivant.

    # Packages required:
    import requests 
    import json 
    
    api_base = '<your_azure_openai_endpoint>' 
    deployment_name = '<your_deployment_name>'
    API_KEY = '<your_azure_openai_key>'
    
    base_url = f"{api_base}openai/deployments/{deployment_name}" 
    headers = {   
        "Content-Type": "application/json",   
        "api-key": API_KEY 
    } 
    
    # Prepare endpoint, headers, and request body 
    endpoint = f"{base_url}/chat/completions?api-version=2023-12-01-preview" 
    data = { 
        "messages": [ 
            { "role": "system", "content": "You are a helpful assistant." }, 
            { "role": "user", "content": [  
                { 
                    "type": "text", 
                    "text": "Describe this picture:" 
                },
                { 
                    "type": "image_url",
                    "image_url": {
                        "url": "<image URL>"
                    }
                }
            ] } 
        ], 
        "max_tokens": 2000 
    }   
    
    # Make the API call   
    response = requests.post(endpoint, headers=headers, data=json.dumps(data))   
    
    print(f"Status Code: {response.status_code}")   
    print(response.text)
    
  2. Apportez les modifications suivantes :

    1. Entrez l’URL et la clé de votre point de terminaison dans les champs appropriés.
    2. Entrez le nom de votre déploiement de modèle dans le champ approprié.
    3. Remplacez la valeur du "image" champ par l’URL accessible publiquement de votre image.

      Pointe

      Vous pouvez également utiliser des données d’image encodées en base 64 au lieu d’une URL. Pour plus d’informations, consultez le guide pratique de Vision.

  3. Exécutez l’application avec la python commande :

    python quickstart.py
    

Nettoyer les ressources

Si vous souhaitez nettoyer et supprimer une ressource OpenAI Azure, vous pouvez supprimer la ressource ou le groupe de ressources. La suppression du groupe de ressources supprime également toutes les autres ressources associées.

Utilisez cet article pour commencer à utiliser le kit de développement logiciel (SDK) openAI Python Azure pour déployer et utiliser un modèle de conversation compatible vision.

Code | source de la bibliothèquePackage (PyPi) |

Conditions préalables

prérequis Microsoft Entra ID

Pour l’authentification sans clé recommandée avec Microsoft Entra ID, vous devez :

  • Installez le Azure CLI utilisé pour l’authentification sans clé avec Microsoft Entra ID.
  • Attribuez le Cognitive Services User rôle à votre compte d’utilisateur. Vous pouvez attribuer des rôles dans le portail Azure sous Access control (IAM)>Add role assignment.

Configurer

Installez la bibliothèque cliente OpenAI Python avec :

pip install openai

Note

Cette bibliothèque est gérée par OpenAI. Reportez-vous à l’historique des versions pour suivre les dernières mises à jour de la bibliothèque.

Récupérer la clé et le point de terminaison

Pour effectuer un appel sur Azure OpenAI, vous avez besoin d’un endpoint et d’une key.

Nom de la variable Valeur
ENDPOINT Le point de terminaison de service se trouve dans le Keys & Point de terminaison section lors de l’examen de votre ressource à partir du portail Azure. Vous pouvez également trouver le point de terminaison via la page Deployments dans Microsoft portail Foundry. Un exemple de point de terminaison est : https://docs-test-001.openai.azure.com/.
API-KEY Cette valeur se trouve dans la Keys & Point de terminaison section lors de l’examen de votre ressource à partir du portail Azure. Vous pouvez utiliser l’une ou l’autre KEY1KEY2.

Accédez à votre ressource dans le portail Azure. La section Clés et point de terminaison se trouve dans la section Gestion des ressources . Copiez votre point de terminaison et votre clé d’accès, car vous aurez besoin des deux pour authentifier vos appels d’API. Vous pouvez utiliser l’une ou l’autre KEY1KEY2. Toujours avoir deux clés vous permet de faire pivoter et de régénérer en toute sécurité les clés sans provoquer d’interruption de service.

Screenshot de l’interface utilisateur de vue d’ensemble d’une ressource OpenAI Azure dans le portail Azure avec le point de terminaison et les clés d’accès situées en cercle rouge.

Variables d’environnement

Créez et affectez des variables d’environnement persistantes pour votre clé et votre point de terminaison.

Important

Nous vous recommandons d’Microsoft Entra ID l’authentification avec identités managées pour les ressources Azure pour éviter de stocker les informations d’identification avec vos applications qui s’exécutent dans le cloud.

Utilisez des clés API avec précaution. N’incluez pas la clé API directement dans votre code et ne la publiez jamais publiquement. Si vous utilisez des clés API, stockez-les en toute sécurité dans Azure Key Vault, faites pivoter les clés régulièrement et limitez l’accès aux Azure Key Vault à l’aide du contrôle d’accès en fonction du rôle et des restrictions d’accès réseau. Pour plus d’informations sur l’utilisation sécurisée des clés API dans vos applications, consultez les API avec Azure Key Vault.

Pour plus d’informations sur la sécurité des services d’INTELLIGENCE artificielle, consultez Demandes d’authentification à Azure AI services.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Créer une application Python

Créez un fichier Python nommé quickstart.py. Ouvrez le nouveau fichier dans votre éditeur ou IDE préféré.

  1. Remplacez le contenu de quickstart.py par le code suivant.

    import os
    from openai import AzureOpenAI
    
    api_base = os.getenv("AZURE_OPENAI_ENDPOINT")
    api_key= os.getenv("AZURE_OPENAI_API_KEY")
    deployment_name = '<your_deployment_name>'
    api_version = '2023-12-01-preview' # this might change in the future
    
    client = AzureOpenAI(
        api_key=api_key,  
        api_version=api_version,
        base_url=f"{api_base}/openai/deployments/{deployment_name}"
    )
    
    response = client.chat.completions.create(
        model=deployment_name,
        messages=[
            { "role": "system", "content": "You are a helpful assistant." },
            { "role": "user", "content": [  
                { 
                    "type": "text", 
                    "text": "Describe this picture:" 
                },
                { 
                    "type": "image_url",
                    "image_url": {
                        "url": "<image URL>"
                    }
                }
            ] } 
        ],
        max_tokens=2000 
    )
    
    print(response)
    
  2. Apportez les modifications suivantes :

    1. Vérifiez que les variables d’environnement et AZURE_OPENAI_API_KEY les variables d’environnement AZURE_OPENAI_ENDPOINT sont définies.
    2. Entrez le nom de votre déploiement de modèle dans la deployment_name variable.
    3. Remplacez la valeur du "url" champ par l’URL accessible publiquement de votre image.

      Pointe

      Vous pouvez également utiliser des données d’image encodées en base 64 au lieu d’une URL. Pour plus d’informations, consultez le guide pratique de Vision.

  3. Exécutez l’application avec la python commande :

    python quickstart.py
    

Important

Utilisez des clés API avec précaution. N’incluez pas la clé API directement dans votre code et ne la publiez jamais publiquement. Si vous utilisez une clé API, stockez-la en toute sécurité dans Azure Key Vault. Pour plus d’informations sur l’utilisation sécurisée des clés API dans vos applications, consultez les API avec Azure Key Vault.

Pour plus d’informations sur la sécurité des services d’INTELLIGENCE artificielle, consultez Demandes d’authentification à Azure AI services.

Nettoyer les ressources

Si vous souhaitez nettoyer et supprimer une ressource OpenAI Azure, vous pouvez supprimer la ressource ou le groupe de ressources. La suppression du groupe de ressources supprime également toutes les autres ressources associées.

Utilisez cet article pour commencer à utiliser le Kit de développement logiciel (SDK) JavaScript OpenAI pour déployer et utiliser un modèle de conversation compatible avec la vision.

Ce Kit de développement logiciel (SDK) est fourni par OpenAI avec Azure types spécifiques fournis par Azure.

documentation Reference Code sourcelibraryPackage (npm)Samples<>/c6>

Conditions préalables

Note

Cette bibliothèque est gérée par OpenAI. Reportez-vous à l’historique des versions pour suivre les dernières mises à jour de la bibliothèque.

prérequis Microsoft Entra ID

Pour l’authentification sans clé recommandée avec Microsoft Entra ID, vous devez :

  • Installez le Azure CLI utilisé pour l’authentification sans clé avec Microsoft Entra ID.
  • Attribuez le Cognitive Services User rôle à votre compte d’utilisateur. Vous pouvez attribuer des rôles dans le portail Azure sous Access control (IAM)>Add role assignment.

Configurer

  1. Créez un dossier vision-quickstart et accédez au dossier de démarrage rapide avec la commande suivante :

    mkdir vision-quickstart && cd vision-quickstart
    
  2. Créez l’élément package.json avec la commande suivante :

    npm init -y
    
  3. Installez la bibliothèque de client OpenAI pour JavaScript avec :

    npm install openai
    
  4. Pour l’authentification sans mot de passe recommandée :

    npm install @azure/identity
    

Récupérer des informations sur les ressources

Vous devez récupérer les informations suivantes pour authentifier votre application avec votre ressource OpenAI Azure :

Nom de la variable Valeur
AZURE_OPENAI_ENDPOINT Cette valeur se trouve dans la section Keys et Endpoint lors de l’examen de votre ressource à partir du portail Azure.
AZURE_OPENAI_DEPLOYMENT_NAME Cette valeur correspond au nom personnalisé que vous avez choisi pour votre déploiement lorsque vous avez déployé un modèle. Cette valeur se trouve sous Resource Management>Model Deployments dans le portail Azure.

En savoir plus sur l’authentification sans clé et la définition des variables d’environnement.

Attention

Pour utiliser l’authentification sans clé recommandée avec le Kit de développement logiciel (SDK), vérifiez que la AZURE_OPENAI_API_KEY variable d’environnement n’est pas définie.

Créer une application JavaScript pour les invites d’images

Sélectionnez une image dans les azure-samples/cognitive-services-sample-data-files. Entrez votre URL d’image accessible publiquement dans le code ci-dessous ou définissez la IMAGE_URL variable d’environnement sur celle-ci.

Important

Si vous utilisez une URL SAP pour une image stockée dans Azure stockage d’objets blob, vous devez activer l’identité managée et affecter le rôle lecteur d’objets blob Storage Blob Reader à votre ressource OpenAI Azure (procédez comme suit dans le portail Azure). Cela permet au modèle d’accéder à l’image dans le stockage d’objets blob.

Pointe

Vous pouvez également utiliser des données d’image encodées en base 64 au lieu d’une URL. Pour plus d’informations, consultez le guide pratique de Vision.

  1. Créez le index.js fichier avec le code suivant :

    const AzureOpenAI = require('openai').AzureOpenAI;
    const { 
        DefaultAzureCredential, 
        getBearerTokenProvider 
    } = require('@azure/identity');
    
    // You will need to set these environment variables or edit the following values
    const endpoint = process.env.AZURE_OPENAI_ENDPOINT || "Your endpoint";
    const imageUrl = process.env.IMAGE_URL || "<image url>";
    
    // Required Azure OpenAI deployment name and API version
    const apiVersion = process.env.OPENAI_API_VERSION || "2024-07-01-preview";
    const deploymentName = process.env.AZURE_OPENAI_DEPLOYMENT_NAME || "gpt-4-with-turbo";
    
    // keyless authentication    
    const credential = new DefaultAzureCredential();
    const scope = "https://ai.azure.com/.default";
    const azureADTokenProvider = getBearerTokenProvider(credential, scope);
    
    function getClient(): AzureOpenAI {
      return new AzureOpenAI({
        endpoint,
        azureADTokenProvider,
        apiVersion,
        deployment: deploymentName,
      });
    }
    function createMessages() {
      return {
        messages: [
          { role: "system", content: "You are a helpful assistant." },
          {
            role: "user",
            content: [
              {
                type: "text",
                text: "Describe this picture:",
              },
              {
                type: "image_url",
                image_url: {
                  url: imageUrl,
                },
              },
            ],
          },
        ],
        model: "",
        max_tokens: 2000,
      };
    }
    async function printChoices(completion) {
      for (const choice of completion.choices) {
        console.log(choice.message);
      }
    }
    export async function main() {
      console.log("== Get Vision chats Sample ==");
    
      const client = getClient();
      const messages = createMessages();
      const completion = await client.chat.completions.create(messages);
      await printChoices(completion);
    }
    
    main().catch((err) => {
      console.error("Error occurred:", err);
    });
    
  2. Connectez-vous à Azure avec la commande suivante :

    az login
    
  3. Exécutez le fichier JavaScript.

    node index.js
    

Nettoyer les ressources

Si vous souhaitez nettoyer et supprimer une ressource OpenAI Azure, vous pouvez supprimer la ressource ou le groupe de ressources. La suppression du groupe de ressources supprime également toutes les autres ressources associées.

Utilisez cet article pour commencer à utiliser le Kit de développement logiciel (SDK) JavaScript OpenAI pour déployer et utiliser un modèle de conversation compatible avec la vision.

Ce Kit de développement logiciel (SDK) est fourni par OpenAI avec Azure types spécifiques fournis par Azure.

documentation Reference Code sourcelibraryPackage (npm)Samples<>/c6>

Conditions préalables

Note

Cette bibliothèque est gérée par OpenAI. Reportez-vous à l’historique des versions pour suivre les dernières mises à jour de la bibliothèque.

prérequis Microsoft Entra ID

Pour l’authentification sans clé recommandée avec Microsoft Entra ID, vous devez :

  • Installez le Azure CLI utilisé pour l’authentification sans clé avec Microsoft Entra ID.
  • Attribuez le Cognitive Services User rôle à votre compte d’utilisateur. Vous pouvez attribuer des rôles dans le portail Azure sous Access control (IAM)>Add role assignment.

Configurer

  1. Créez un dossier vision-quickstart et accédez au dossier de démarrage rapide avec la commande suivante :

    mkdir vision-quickstart && cd vision-quickstart
    
  2. Créez l’élément package.json avec la commande suivante :

    npm init -y
    
  3. Mettez à jour la package.json commande ECMAScript avec la commande suivante :

    npm pkg set type=module
    
  4. Installez la bibliothèque de client OpenAI pour JavaScript avec :

    npm install openai
    
  5. Pour l’authentification sans mot de passe recommandée :

    npm install @azure/identity
    

Récupérer des informations sur les ressources

Vous devez récupérer les informations suivantes pour authentifier votre application avec votre ressource OpenAI Azure :

Nom de la variable Valeur
AZURE_OPENAI_ENDPOINT Cette valeur se trouve dans la section Keys et Endpoint lors de l’examen de votre ressource à partir du portail Azure.
AZURE_OPENAI_DEPLOYMENT_NAME Cette valeur correspond au nom personnalisé que vous avez choisi pour votre déploiement lorsque vous avez déployé un modèle. Cette valeur se trouve sous Resource Management>Model Deployments dans le portail Azure.

En savoir plus sur l’authentification sans clé et la définition des variables d’environnement.

Attention

Pour utiliser l’authentification sans clé recommandée avec le Kit de développement logiciel (SDK), vérifiez que la AZURE_OPENAI_API_KEY variable d’environnement n’est pas définie.

Créer une application JavaScript pour les invites d’images

Sélectionnez une image dans les azure-samples/cognitive-services-sample-data-files. Utilisez l’URL de l’image dans le code ci-dessous ou définissez la IMAGE_URL variable d’environnement sur l’URL de l’image.

Pointe

Vous pouvez également utiliser des données d’image encodées en base 64 au lieu d’une URL. Pour plus d’informations, consultez le guide pratique de Vision.

  1. Créez le index.ts fichier avec le code suivant :

    import { AzureOpenAI } from "openai";
    import { 
        DefaultAzureCredential, 
        getBearerTokenProvider 
    } from "@azure/identity";
    import type {
      ChatCompletion,
      ChatCompletionCreateParamsNonStreaming,
    } from "openai/resources/index";
    
    // You will need to set these environment variables or edit the following values
    const endpoint = process.env.AZURE_OPENAI_ENDPOINT || "Your endpoint";
    const imageUrl = process.env["IMAGE_URL"] || "<image url>";
    
    // Required Azure OpenAI deployment name and API version
    const apiVersion = process.env.OPENAI_API_VERSION || "2024-07-01-preview";
    const deploymentName = process.env.AZURE_OPENAI_DEPLOYMENT_NAME || "gpt-4-with-turbo";
    
    // keyless authentication    
    const credential = new DefaultAzureCredential();
    const scope = "https://ai.azure.com/.default";
    const azureADTokenProvider = getBearerTokenProvider(credential, scope);
    
    function getClient(): AzureOpenAI {
      return new AzureOpenAI({
        endpoint,
        azureADTokenProvider,
        apiVersion,
        deployment: deploymentName,
      });
    }
    function createMessages(): ChatCompletionCreateParamsNonStreaming {
      return {
        messages: [
          { role: "system", content: "You are a helpful assistant." },
          {
            role: "user",
            content: [
              {
                type: "text",
                text: "Describe this picture:",
              },
              {
                type: "image_url",
                image_url: {
                  url: imageUrl,
                },
              },
            ],
          },
        ],
        model: "",
        max_tokens: 2000,
      };
    }
    async function printChoices(completion: ChatCompletion): Promise<void> {
      for (const choice of completion.choices) {
        console.log(choice.message);
      }
    }
    export async function main() {
      console.log("== Get Vision chat Sample ==");
    
      const client = getClient();
      const messages = createMessages();
      const completion = await client.chat.completions.create(messages);
      await printChoices(completion);
    }
    
    main().catch((err) => {
      console.error("Error occurred:", err);
    });
    
  2. Créez le tsconfig.json fichier pour transpiler le code TypeScript et copiez le code suivant pour ECMAScript.

    {
        "compilerOptions": {
          "module": "NodeNext",
          "target": "ES2022", // Supports top-level await
          "moduleResolution": "NodeNext",
          "skipLibCheck": true, // Avoid type errors from node_modules
          "strict": true // Enable strict type-checking options
        },
        "include": ["*.ts"]
    }
    
  3. Transpilez de TypeScript en JavaScript.

    tsc
    
  4. Connectez-vous à Azure avec la commande suivante :

    az login
    
  5. Exécutez le code avec la commande suivante :

    node index.js
    

Nettoyer les ressources

Si vous souhaitez nettoyer et supprimer une ressource OpenAI Azure, vous pouvez supprimer la ressource ou le groupe de ressources. La suppression du groupe de ressources supprime également toutes les autres ressources associées.

Utilisez cet article pour commencer à utiliser le kit de développement logiciel (SDK) openAI Azure OpenAI .NET pour déployer et utiliser un modèle de conversation compatible avec la vision.

Conditions préalables

prérequis Microsoft Entra ID

Pour l’authentification sans clé recommandée avec Microsoft Entra ID, vous devez :

  • Installez le Azure CLI utilisé pour l’authentification sans clé avec Microsoft Entra ID.
  • Attribuez le Cognitive Services User rôle à votre compte d’utilisateur. Vous pouvez attribuer des rôles dans le portail Azure sous Access control (IAM)>Add role assignment.

Configurer

  1. Créez un dossier vision-quickstart et accédez au dossier de démarrage rapide avec la commande suivante :

    mkdir vision-quickstart && cd vision-quickstart
    
  2. Créez une application console avec la commande suivante :

    dotnet new console
    
  3. Installez la bibliothèque cliente OpenAI .NET avec la commande dotnet add package :

    dotnet add package Azure.AI.OpenAI
    
  4. Pour l’authentification sans clé re félicitée avec Microsoft Entra ID, installez la Azure. Identity package avec :

    dotnet add package Azure.Identity
    
  5. Pour l’authentification sans clé sans clé avec Microsoft Entra ID, connectez-vous à Azure avec la commande suivante :

    az login
    

Récupérer des informations sur les ressources

Vous devez récupérer les informations suivantes pour authentifier votre application avec votre ressource OpenAI Azure :

Nom de la variable Valeur
AZURE_OPENAI_ENDPOINT Cette valeur se trouve dans la section Keys et Endpoint lors de l’examen de votre ressource à partir du portail Azure.
AZURE_OPENAI_DEPLOYMENT_NAME Cette valeur correspond au nom personnalisé que vous avez choisi pour votre déploiement lorsque vous avez déployé un modèle. Cette valeur se trouve sous Resource Management>Model Deployments dans le portail Azure.

En savoir plus sur l’authentification sans clé et la définition des variables d’environnement.

Exécuter le guide de démarrage rapide

L’exemple de code de ce guide de démarrage rapide utilise Microsoft Entra ID pour l’authentification sans clé recommandée. Si vous préférez utiliser une clé API, vous pouvez remplacer l’objet DefaultAzureCredential par un AzureKeyCredential objet.

AzureOpenAIClient openAIClient = new AzureOpenAIClient(new Uri(endpoint), new DefaultAzureCredential()); 

Pour exécuter le guide de démarrage rapide, procédez comme suit :

  1. Remplacez le contenu par le code suivant et mettez à jour les valeurs d’espace Program.cs réservé par vos propres valeurs.

    using Azure;
    using Azure.AI.OpenAI;
    using Azure.Identity;
    using OpenAI.Chat; // Required for Passwordless auth
    
    string deploymentName = "gpt-4";
    
    string endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT") ?? "https://<your-resource-name>.openai.azure.com/";
    string key = Environment.GetEnvironmentVariable("AZURE_OPENAI_API_KEY") ?? "<your-key>";
    
    // Use the recommended keyless credential instead of the AzureKeyCredential credential.
    AzureOpenAIClient openAIClient = new AzureOpenAIClient(new Uri(endpoint), new DefaultAzureCredential()); 
    //AzureOpenAIClient openAIClient = new AzureOpenAIClient(new Uri(endpoint), new AzureKeyCredential(key));
    
    var chatClient = openAIClient.GetChatClient(deploymentName);
    
    var imageUrl = "YOUR_IMAGE_URL";
    
    var textPart = ChatMessageContentPart.CreateTextPart("Describe this picture:");
    var imgPart = ChatMessageContentPart.CreateImagePart(imageUrl); 
    
    var chatMessages = new List<ChatMessage>
    {
        new SystemChatMessage("You are a helpful assistant."),
        new UserChatMessage(textPart, imgPart)
    
    };
    
    ChatCompletion chatCompletion = await chatClient.CompleteChatAsync(chatMessages);
    
    Console.WriteLine($"[ASSISTANT]:");
    Console.WriteLine($"{chatCompletion.Content[0].Text}");
    
  2. Remplacez YOUR_IMAGE_URL par l’accès public de l’image que vous souhaitez charger.

  3. Exécutez l’application à l’aide de la commande dotnet run ou du bouton Exécuter en haut de Visual Studio :

    dotnet run
    

Sortie

La sortie de l’application est une description de l’image que vous avez fournie dans la imageUri variable. L’assistant analyse l’image et fournit une description détaillée en fonction de son contenu.

Nettoyer les ressources

Si vous souhaitez nettoyer et supprimer une ressource OpenAI Azure, vous pouvez supprimer la ressource ou le groupe de ressources. La suppression du groupe de ressources supprime également toutes les autres ressources associées.

Détails de l’API

Les commandes suivantes montrent comment appeler l’API d’achèvement de conversation avec des modèles compatibles avec la vision. Pour plus d’informations, consultez la référence de l’API.

Envoyer une requête POST à l’emplacement https://{RESOURCE_NAME}.openai.azure.com/openai/v1/chat/completions

  • RESOURCE_NAME est le nom de votre ressource OpenAI Azure

En-têtes obligatoires :

  • Content-Type: application/json
  • api-key: {API_KEY}

Corps : voici un exemple de corps de requête. Le format est identique à l’API de saisie semi-automatique de conversation pour GPT-4o, sauf que le contenu du message peut être un tableau contenant du texte et des images (une URL HTTP ou HTTPS accessible publiquement valide à une image, ou une image codée en base 64).

Important

N’oubliez pas de définir une ou max_completion_tokens une "max_tokens" valeur, ou la sortie de retour sera coupée. Pour les modèles de raisonnement de série o, utilisez max_completion_tokens plutôt max_tokensque .

Important

Lors du chargement d’images, il existe une limite de 10 images par demande de conversation.

Note

Les formats d’image pris en charge incluent JPEG, PNG, GIF (première image uniquement) et WEBP.

{
    "model": "MODEL-DEPLOYMENT-NAME",
    "messages": [ 
        {
            "role": "system", 
            "content": "You are a helpful assistant." 
        },
        {
            "role": "user", 
            "content": [
	            {
	                "type": "text",
	                "text": "Describe this picture:"
	            },
	            {
	                "type": "image_url",
	                "image_url": {
                        "url": "<image URL>"
                    }
                } 
           ] 
        }
    ],
    "max_tokens": 100, 
    "stream": false 
} 

Pointe

Utiliser une image locale

Si vous souhaitez utiliser une image locale, vous pouvez utiliser le code Python suivant pour le convertir en base64 afin qu’il puisse être transmis à l’API. D’autres outils de conversion de fichiers sont disponibles en ligne.

import base64
from mimetypes import guess_type

# Function to encode a local image into data URL 
def local_image_to_data_url(image_path):
    # Guess the MIME type of the image based on the file extension
    mime_type, _ = guess_type(image_path)
    if mime_type is None:
        mime_type = 'application/octet-stream'  # Default MIME type if none is found

    # Read and encode the image file
    with open(image_path, "rb") as image_file:
        base64_encoded_data = base64.b64encode(image_file.read()).decode('utf-8')

    # Construct the data URL
    return f"data:{mime_type};base64,{base64_encoded_data}"

# Example usage
image_path = '<path_to_image>'
data_url = local_image_to_data_url(image_path)
print("Data URL:", data_url)

Lorsque vos données d’image base64 sont prêtes, vous pouvez la transmettre à l’API dans le corps de la requête comme suit :

...
"type": "image_url",
"image_url": {
   "url": "data:image/jpeg;base64,<your_image_data>"
}
...

Configurer le niveau de détail de l’image

Vous pouvez éventuellement définir un "detail" paramètre dans le "image_url" champ. Choisissez l’une des trois valeurs, lowou high, ou autopour ajuster la façon dont le modèle interprète et traite les images.

  • auto paramètre : paramètre par défaut. Le modèle décide entre faible ou élevé en fonction de la taille de l’entrée d’image.
  • low paramètre : le modèle n’active pas le mode « res élevés », traite plutôt une version de résolution inférieure 512x512, ce qui entraîne des réponses plus rapides et une consommation de jeton réduite pour les scénarios où les détails précis ne sont pas essentiels.
  • high paramètre : le modèle active le mode « haute res ». Ici, le modèle affiche initialement l’image à faible résolution, puis génère des segments détaillés 512x512 à partir de l’image d’entrée. Chaque segment utilise deux fois le budget du jeton, ce qui permet une interprétation plus détaillée de l’image.

Vous définissez la valeur à l’aide du format indiqué dans cet exemple :

{ 
    "type": "image_url",
    "image_url": {
        "url": "<image URL>",
        "detail": "high"
    }
}

Sortie

Lorsque vous envoyez une image à un modèle compatible avec la vision, l’API retourne une réponse d’achèvement de conversation avec l’analyse du modèle. La réponse inclut des résultats de filtre de contenu spécifiques à Azure OpenAI.

{
    "id": "chatcmpl-8VAVx58veW9RCm5K1ttmxU6Cm4XDX",
    "object": "chat.completion",
    "created": 1702439277,
    "model": "gpt-4o",
    "prompt_filter_results": [
        {
            "prompt_index": 0,
            "content_filter_results": {
                "hate": {
                    "filtered": false,
                    "severity": "safe"
                },
                "self_harm": {
                    "filtered": false,
                    "severity": "safe"
                },
                "sexual": {
                    "filtered": false,
                    "severity": "safe"
                },
                "violence": {
                    "filtered": false,
                    "severity": "safe"
                }
            }
        }
    ],
    "choices": [
        {
            "finish_reason":"stop",
            "index": 0,
            "message": {
                "role": "assistant",
                "content": "The picture shows an individual dressed in formal attire, which includes a black tuxedo with a black bow tie. There is an American flag on the left lapel of the individual's jacket. The background is predominantly blue with white text that reads \"THE KENNEDY PROFILE IN COURAGE AWARD\" and there are also visible elements of the flag of the United States placed behind the individual."
            },
            "content_filter_results": {
                "hate": {
                    "filtered": false,
                    "severity": "safe"
                },
                "self_harm": {
                    "filtered": false,
                    "severity": "safe"
                },
                "sexual": {
                    "filtered": false,
                    "severity": "safe"
                },
                "violence": {
                    "filtered": false,
                    "severity": "safe"
                }
            }
        }
    ],
    "usage": {
        "prompt_tokens": 1156,
        "completion_tokens": 80,
        "total_tokens": 1236
    }
}

Chaque réponse inclut un "finish_reason" champ. Il contient les valeurs possibles suivantes :

  • stop: l’API a retourné la sortie complète du modèle.
  • length: sortie de modèle incomplète en raison du paramètre d’entrée ou de la max_tokens limite de jetons du modèle.
  • content_filter: contenu omis en raison d’un indicateur de nos filtres de contenu.

Limitations d’entrée

Cette section décrit les limitations des modèles de conversation compatibles avec la vision.

Prise en charge des images

  • Taille maximale de l’image d’entrée : la taille maximale des images d’entrée est limitée à 20 Mo.
  • Précision de faible résolution : lorsque les images sont analysées à l’aide du paramètre « basse résolution », elle permet des réponses plus rapides et utilise moins de jetons d’entrée pour certains cas d’usage. Toutefois, cela peut avoir un impact sur la précision de la reconnaissance d’objet et de texte dans l’image.
  • restriction de conversation Image : lorsque vous chargez des images dans Microsoft portail Foundry ou l'API, vous êtes limité à 10 images par appel de conversation.

Informations de tarification spéciales

Important

Le contenu suivant est un exemple uniquement, et les prix sont susceptibles de changer à l’avenir.

Les modèles compatibles vision accumulent des frais comme d’autres Azure modèles de conversation OpenAI. Vous payez un taux par jeton pour les invites et les achèvements, détaillé dans la page Tarification. Les frais de base et d’autres fonctionnalités sont décrits ici :

La tarification de base pour GPT-4 Turbo avec Vision est la suivante :

  • Entrée : 0,01 $ par 1 000 jetons
  • Sortie : 0,03 $ par 1 000 jetons

Consultez la section Jetons de la vue d’ensemble pour plus d’informations sur la façon dont le texte et les images se traduisent en jetons.

Exemple de calcul du prix de l’image

Pour un cas d’usage classique, prenez une image avec des objets visibles et du texte et une entrée d’invite de 100 jetons. Lorsque le service traite l’invite, il génère 100 jetons de sortie. Dans l’image, le texte et les objets peuvent être détectés. Le prix de cette transaction serait :

Article Détail Coût
Entrée d’invite de texte 100 jetons de texte 0,001 $
Exemple d’entrée d’image (voir Jetons d’image) 170 + 85 jetons d’image 0,00255 $
Fonctionnalités d’extension améliorées pour OCR 1,50 $ / 1 000 transactions 0,0015 $
Fonctionnalités d’extension améliorées pour Object Grounding 1,50 $ / 1 000 transactions 0,0015 $
Jetons de sortie 100 jetons (supposés) 0,003 $
Total 0,00955 $

Dépannage

Question Résolution
Sortie tronquée Augmentation max_tokens ou max_completion_tokens valeur
Image non traitée Vérifier que l’URL est accessible publiquement ou que l’encodage base64 est correct
Limite de débit dépassée Implémenter une logique de nouvelle tentative avec interruption exponentielle