Condividi tramite


Avvio rapido: Usare le immagini nelle chat di intelligenza artificiale

Introduzione all'uso di GPT-4 Turbo con immagini con il Servizio OpenAI di Azure.

Nota

Scelta del modello

I modelli più recenti che supportano la visione sono gpt-4o e gpt-4o mini. Questi modelli sono disponibili in anteprima pubblica. Il modello disponibile a livello generale più recente è gpt-4 la versione turbo-2024-04-09.

Importante

È possibile applicare costi di utilizzo aggiuntivi quando si usano modelli di completamento della chat con funzionalità di visione.

Usare questo articolo per iniziare a usare Azure AI Foundry per distribuire e testare un modello di completamento della chat con informazioni sulle immagini.

Prerequisiti

Preparare i file multimediali

Per completare questa guida introduttiva, è necessaria un'immagine. È possibile usare l'immagine di esempio o qualsiasi altra immagine disponibile.

Foto di un incidente stradale che può essere usato per completare l'avvio rapido.

Passare a Azure AI Foundry

  1. Passare ad Azure AI Foundry e accedere con le credenziali associate alla risorsa OpenAI di Azure. Durante o dopo il flusso di lavoro di accesso, selezionare la directory appropriata, la sottoscrizione di Azure e la risorsa OpenAI di Azure.
  2. Selezionare l'hub in cui si desidera lavorare.
  3. Nel menu di spostamento a sinistra selezionare Modelli e endpoint e selezionare + Distribuisci modello.
  4. Scegliere una distribuzione con supporto per le immagini selezionando il nome del modello: gpt-4o o gpt-4o-mini. Nella finestra visualizzata selezionare un nome e un tipo di distribuzione. Assicurarsi che la risorsa OpenAI di Azure sia connessa. Per altre informazioni sulla distribuzione del modello, vedere la guida alla distribuzione delle risorse.
  5. Seleziona Distribuisci.
  6. Selezionare quindi il nuovo modello e selezionare Apri nel playground. Nel playground della chat, la distribuzione creata deve essere selezionata nell'elenco a discesa Distribuzione .

Playground

In questa sessione di chat si indica all'assistente di comprendere le immagini immesse.

Per informazioni generali sulla configurazione dell'assistente, le sessioni di chat, le impostazioni e i pannelli, vedere la Guida introduttiva alla Chat.

Avviare una sessione di chat per analizzare le immagini

In questa sessione di chat si indica all'assistente di contribuire alla comprensione delle immagini immesse.

  1. Per iniziare, assicurarsi che la distribuzione con supporto per le immagini sia selezionata nell'elenco a discesa Distribuzione .

  2. Nella casella di testo del contesto del pannello Imposta specificare questa richiesta per guidare l'assistente: "You're an AI assistant that helps people find information." in alternativa, è possibile personalizzare la richiesta per l'immagine o lo scenario.

    Nota

    È consigliabile aggiornare il messaggio di sistema in modo che sia specifico dell'attività per evitare risposte inutili dal modello.

  3. Selezionare Applica modifiche per salvare le modifiche.

  4. Nel riquadro della sessione della chat, selezionare il pulsante dell’allegato, quindi Carica immagine. Scegliere l'immagine.

  5. Aggiungere il prompt seguente nel campo della chat: Describe this imagee quindi selezionare l'icona di invio per inviarla.

  6. L'icona di invio viene sostituita da un pulsante di arresto. Selezionando il pulsante, l'assistente interrompe l'elaborazione della richiesta. Per questa guida introduttiva, lasciare che l'assistente finisca la risposta.

  7. L'assistente deve rispondere con una descrizione dell'immagine.

  8. Porre una domanda di completamento correlata all'analisi dell'immagine. È possibile immettere "What should I highlight about this image to my insurance company?".

  9. Si dovrebbe ricevere una risposta pertinente simile a quanto illustrato di seguito:

    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.
    

Visualizzare ed esportare codice

In qualsiasi punto della sessione di chat, è possibile abilitare l'opzione Mostra JSON non elaborato nella parte superiore della finestra chat per visualizzare la conversazione formattata come JSON. Ecco come appare all'inizio della sessione di chat di avvio rapido:

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

Pulire le risorse

Per pulire e rimuovere una risorsa OpenAI, è possibile eliminare la risorsa o il gruppo di risorse. L'eliminazione del gruppo di risorse comporta anche l'eliminazione di tutte le altre risorse associate.

Usare questo articolo per iniziare a usare le API REST OpenAI di Azure per distribuire e usare il modello GPT-4 Turbo with Vision.

Prerequisiti

Nota

Attualmente non è supportata la disattivazione del filtro del contenuto per il modello GPT-4 Turbo with Vision.

Recuperare la chiave e l'endpoint

Per chiamare correttamente le API OpenAI di Azure, sono necessarie le informazioni seguenti sulla risorsa di OpenAI di Azure:

Variabile Nome Valore
Endpoint api_base Il valore dell'endpoint si trova in Chiavi ed endpoint per la risorsa nel portale di Azure. È anche possibile trovare l'endpoint tramite la pagina Distribuzioni nel portale di Azure AI Foundry. Un endpoint di esempio è https://docs-test-001.openai.azure.com/.
Chiave api_key Il valore della chiave si trova in Chiavi ed endpoint per la risorsa nel portale di Azure. Azure genera due chiavi per la risorsa. È possibile usare indifferentemente una delle due.

Passare alla risorsa nel portale di Azure. Nel riquadro di spostamento selezionare Chiavi ed endpoint in Gestione risorse. Copiare il valore Endpoint e un valore della chiave di accesso. È possibile usare il valore KEY 1 o KEY 2. Avere sempre due chiavi consente di ruotare e rigenerare in modo sicuro le chiavi senza causare un'interruzione del servizio.

Screenshot che mostra la pagina Chiavi ed endpoint per una risorsa di OpenAI di Azure nel portale di Azure.

Creare una nuova applicazione Python

Creare un nuovo file Python denominato quickstart.py. Aprire il nuovo file nell'editor preferito.

  1. Sostituire il contenuto di quickstart.py con il codice seguente.

    # 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. Apportare le modifiche seguenti:

    1. Immettere l'URL e la chiave dell'endpoint nei campi appropriati.
    2. Immettere il nome della distribuzione di GPT-4 Turbo with Vision nel campo appropriato.
    3. Modificare il valore del campo "image" impostando l'URL dell'immagine.

      Suggerimento

      È anche possibile usare dati immagine codificati in base 64 anziché un URL. Per altre informazioni, vedere la Guida pratica per GPT-4 Turbo with Vision.

  3. Eseguire l'applicazione con il comando python:

    python quickstart.py
    

Pulire le risorse

Per pulire e rimuovere una risorsa OpenAI, è possibile eliminare la risorsa o il gruppo di risorse. L'eliminazione del gruppo di risorse comporta anche l'eliminazione di tutte le altre risorse associate.

Usare questo articolo per iniziare a usare Azure OpenAI Python SDK per distribuire e usare il modello GPT-4 Turbo with Vision.

Codice sorgente della libreria | Pacchetto (PyPi) |

Prerequisiti

Impostazione

Installare la libreria client Python OpenAI con:

pip install openai

Nota

Questa libreria viene gestita da OpenAI. Fare riferimento alla cronologia delle versioni per tenere traccia degli aggiornamenti più recenti della libreria.

Recuperare la chiave e l'endpoint

Per effettuare correttamente una chiamata ad Azure OpenAI, sono necessari un endpoint e una chiave.

Nome variabile Valore
ENDPOINT L'endpoint di servizio è disponibile nella sezione Chiavi ed endpoint quando si esamina la risorsa dal portale di Azure. In alternativa, è possibile trovare l'endpoint tramite la pagina Distribuzioni nel portale di Azure AI Foundry. Un endpoint di esempio è https://docs-test-001.openai.azure.com/.
API-KEY Questo valore è disponibile nella sezione Chiavi ed endpoint durante l'esame della risorsa dalla portale di Azure. Puoi usare entrambi KEY1 o KEY2.

Passare alla risorsa nel portale di Azure. La sezione Chiavi ed endpoint è disponibile nella sezione Gestione risorse. Copiare l'endpoint e la chiave di accesso in base alle esigenze per l'autenticazione delle chiamate API. Puoi usare entrambi KEY1 o KEY2. Disporre sempre di due chiavi consente di ruotare e rigenerare in modo sicuro le chiavi senza causare un'interruzione del servizio.

Screenshot di panoramica dell'interfaccia utente per una risorsa OpenAI di Azure nel portale di Azure con l'endpoint e la posizione delle chiavi di accesso evidenziati in rosso.

Variabili di ambiente

Creare e assegnare variabili di ambiente persistenti per la chiave e l'endpoint.

Importante

Si consiglia l'autenticazione di Microsoft Entra ID insieme alle identità gestite per le risorse di Azure al fine di evitare di archiviare le credenziali con le applicazioni eseguite nel cloud.

Usare le chiavi API con cautela. Non includere la chiave API direttamente nel codice e non esporla mai pubblicamente. Se si usano chiavi API, archiviarli in modo sicuro in Azure Key Vault, ruotare regolarmente le chiavi e limitare l'accesso ad Azure Key Vault usando il controllo degli accessi in base al ruolo e le restrizioni di accesso alla rete. Per altre informazioni sull'uso sicuro delle chiavi API nelle app, vedere Chiavi API con Azure Key Vault.

Per altre informazioni sulla sicurezza dei servizi IA, vedere Autenticare richieste in Servizi di Azure AI.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Creare una nuova applicazione Python

Creare un nuovo file Python denominato quickstart.py. Aprire il nuovo file nell'editor preferito.

  1. Sostituire il contenuto di quickstart.py con il codice seguente.

    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. Apportare le modifiche seguenti:

    1. Immettere il nome della distribuzione di GPT-4 Turbo with Vision nel campo appropriato.
    2. Modificare il valore del campo "url" impostando l'URL dell'immagine.

      Suggerimento

      È anche possibile usare dati immagine codificati in base 64 anziché un URL. Per altre informazioni, vedere la Guida pratica per GPT-4 Turbo with Vision.

  3. Eseguire l'applicazione con il comando python:

    python quickstart.py
    

Importante

Usare le chiavi API con cautela. Non includere la chiave API direttamente nel codice e non esporla mai pubblicamente. Se si usa una chiave API, archiviarla in modo sicuro in Azure Key Vault. Per altre informazioni sull'uso sicuro delle chiavi API nelle app, vedere Chiavi API con Azure Key Vault.

Per altre informazioni sulla sicurezza dei servizi di intelligenza artificiale, vedere Autenticare le richieste a Servizi di Azure AI.

Pulire le risorse

Per pulire e rimuovere una risorsa OpenAI, è possibile eliminare la risorsa o il gruppo di risorse. L'eliminazione del gruppo di risorse comporta anche l'eliminazione di tutte le altre risorse associate.

Usare questo articolo per iniziare a usare OpenAI JavaScript SDK per distribuire e usare il modello GPT-4 Turbo con Visione.

Questo SDK è fornito da OpenAI con tipi specifici di Azure forniti da Azure.

Documentazione di riferimento | Codice sorgente della libreria | Pacchetto (npm) | Esempi

Prerequisiti

Nota

Questa libreria viene gestita da OpenAI. Fare riferimento alla cronologia delle versioni per tenere traccia degli aggiornamenti più recenti della libreria.

Prerequisiti di Microsoft Entra ID

Per l'autenticazione senza chiave consigliata con Microsoft Entra ID, è necessario:

  • Installare l'interfaccia della riga di comando di Azure usata per l'autenticazione senza chiave con Microsoft Entra ID.
  • Assegnare il ruolo Cognitive Services User all'account utente. È possibile assegnare ruoli nella portale di Azure in Controllo di accesso (IAM)>Aggiungere un'assegnazione di ruolo.

Recuperare le informazioni sulle risorse

È necessario recuperare le informazioni seguenti per autenticare l'applicazione con la risorsa OpenAI di Azure:

Nome variabile Valore
AZURE_OPENAI_ENDPOINT Questo valore è disponibile nella sezione Chiavi ed endpoint quando si esamina la risorsa dal portale di Azure.
AZURE_OPENAI_DEPLOYMENT_NAME Questo valore corrisponderà al nome personalizzato scelto per la distribuzione quando è stato distribuito un modello. Questo valore è disponibile in Distribuzioni di modelli di gestione>risorse nella portale di Azure.
OPENAI_API_VERSION Altre informazioni sulle versioni api.

Altre informazioni sull'autenticazione senza chiave e sull'impostazione delle variabili di ambiente.

Attenzione

Per usare l'autenticazione senza chiave consigliata con l'SDK, assicurarsi che la AZURE_OPENAI_API_KEY variabile di ambiente non sia impostata.

Creare un'applicazione Node

In una finestra della console, ad esempio cmd, PowerShell o Bash, creare e passare a una nuova directory per l'app. Quindi, eseguire il comando npm init per creare un'applicazione node con un file package.json.

npm init

Installare la libreria client

Installare le librerie client con:

npm install openai @azure/identity

Il file package.json dell'app verrà aggiornato con le dipendenze.

Creare una nuova applicazione JavaScript per le richieste relative alle immagini

Selezionare un'immagine da azure-samples/cognitive-services-sample-data-files e impostare l'URL per un'immagine nelle variabili di ambiente.

  1. Sostituire i contenuti di quickstart.js con il codice seguente.

    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"] || "<endpoint>";
    const imageUrl = process.env["IMAGE_URL"] || "<image url>";
    
    // Required Azure OpenAI deployment name and API version
    const apiVersion = "2024-07-01-preview";
    const deploymentName = "gpt-4-with-turbo";
    
    // keyless authentication    
    const credential = new DefaultAzureCredential();
    const scope = "https://cognitiveservices.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 GPT-4 Turbo with vision 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. Apportare le modifiche seguenti:

    1. Immettere il nome della distribuzione di GPT-4 Turbo with Vision nel campo appropriato.
    2. Modificare il valore del campo "url" impostando l'URL dell'immagine.

      Suggerimento

      È anche possibile usare dati immagine codificati in base 64 anziché un URL. Per altre informazioni, vedere la Guida pratica per GPT-4 Turbo with Vision.

  3. Eseguire l'applicazione con il comando seguente:

    node quickstart.js
    

Pulire le risorse

Per pulire e rimuovere una risorsa OpenAI, è possibile eliminare la risorsa o il gruppo di risorse. L'eliminazione del gruppo di risorse comporta anche l'eliminazione di tutte le altre risorse associate.

Usare questo articolo per iniziare a usare OpenAI JavaScript SDK per distribuire e usare il modello GPT-4 Turbo con Visione.

Questo SDK è fornito da OpenAI con tipi specifici di Azure forniti da Azure.

Documentazione di riferimento | Codice sorgente della libreria | Pacchetto (npm) | Esempi

Prerequisiti

Nota

Questa libreria viene gestita da OpenAI. Fare riferimento alla cronologia delle versioni per tenere traccia degli aggiornamenti più recenti della libreria.

Prerequisiti di Microsoft Entra ID

Per l'autenticazione senza chiave consigliata con Microsoft Entra ID, è necessario:

  • Installare l'interfaccia della riga di comando di Azure usata per l'autenticazione senza chiave con Microsoft Entra ID.
  • Assegnare il ruolo Cognitive Services User all'account utente. È possibile assegnare ruoli nella portale di Azure in Controllo di accesso (IAM)>Aggiungere un'assegnazione di ruolo.

Recuperare le informazioni sulle risorse

È necessario recuperare le informazioni seguenti per autenticare l'applicazione con la risorsa OpenAI di Azure:

Nome variabile Valore
AZURE_OPENAI_ENDPOINT Questo valore è disponibile nella sezione Chiavi ed endpoint quando si esamina la risorsa dal portale di Azure.
AZURE_OPENAI_DEPLOYMENT_NAME Questo valore corrisponderà al nome personalizzato scelto per la distribuzione quando è stato distribuito un modello. Questo valore è disponibile in Distribuzioni di modelli di gestione>risorse nella portale di Azure.
OPENAI_API_VERSION Altre informazioni sulle versioni api.

Altre informazioni sull'autenticazione senza chiave e sull'impostazione delle variabili di ambiente.

Attenzione

Per usare l'autenticazione senza chiave consigliata con l'SDK, assicurarsi che la AZURE_OPENAI_API_KEY variabile di ambiente non sia impostata.

Creare un'applicazione Node

In una finestra della console, ad esempio cmd, PowerShell o Bash, creare e passare a una nuova directory per l'app. Quindi, eseguire il comando npm init per creare un'applicazione node con un file package.json.

npm init

Installare la libreria client

Installare le librerie client con:

npm install openai @azure/identity

Il file package.json dell'app verrà aggiornato con le dipendenze.

Creare una nuova applicazione JavaScript per le richieste relative alle immagini

Selezionare un'immagine da azure-samples/cognitive-services-sample-data-files e impostare l'URL per un'immagine nelle variabili di ambiente.

  1. Creare quickstart.ts e incollarla nel codice seguente.

    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"] || "<endpoint>";
    const imageUrl = process.env["IMAGE_URL"] || "<image url>";
    
    // Required Azure OpenAI deployment name and API version
    const apiVersion = "2024-07-01-preview";
    const deploymentName = "gpt-4-with-turbo";
    
    // keyless authentication    
    const credential = new DefaultAzureCredential();
    const scope = "https://cognitiveservices.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 GPT-4 Turbo with vision 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. Apportare le modifiche seguenti:

    1. Immettere il nome della distribuzione di GPT-4 Turbo with Vision nel campo appropriato.
    2. Modificare il valore del campo "url" impostando l'URL dell'immagine.

      Suggerimento

      È anche possibile usare dati immagine codificati in base 64 anziché un URL. Per altre informazioni, vedere la Guida pratica per GPT-4 Turbo with Vision.

  3. Compilare l'applicazione con il comando seguente:

    tsc
    
  4. Eseguire l'applicazione con il comando seguente:

    node quickstart.js
    

Pulire le risorse

Per pulire e rimuovere una risorsa OpenAI, è possibile eliminare la risorsa o il gruppo di risorse. L'eliminazione del gruppo di risorse comporta anche l'eliminazione di tutte le altre risorse associate.

Usare questo articolo per iniziare a usare Azure OpenAI .NET SDK per distribuire e usare il modello GPT-4 Turbo con Visione.

Prerequisiti

Impostazione

Recuperare la chiave e l'endpoint

Per effettuare correttamente una chiamata ad Azure OpenAI, sono necessari un endpoint e una chiave.

Nome variabile Valore
AZURE_OPENAI_ENDPOINT L'endpoint di servizio è disponibile nella sezione Chiavi ed endpoint quando si esamina la risorsa dal portale di Azure. In alternativa, è possibile trovare l'endpoint tramite la pagina Distribuzioni nel portale di Azure AI Foundry. Un endpoint di esempio è https://docs-test-001.openai.azure.com/.
AZURE_OPENAI_API_KEY Questo valore è disponibile nella sezione Chiavi ed endpoint durante l'esame della risorsa dalla portale di Azure. Puoi usare entrambi KEY1 o KEY2.

Passare alla risorsa nel portale di Azure. L'Endpoint e le chiavi sono disponibili nella sezione Gestione risorse. Copiare l'endpoint e la chiave di accesso in base alle esigenze per l'autenticazione delle chiamate API. Puoi usare entrambi KEY1 o KEY2. Disporre sempre di due chiavi consente di ruotare e rigenerare in modo sicuro le chiavi senza causare un'interruzione del servizio.

Screenshot di panoramica dell'interfaccia utente per una risorsa di Azure OpenAI nel portale di Azure con l'endpoint e la posizione delle chiavi di accesso evidenziati in rosso.

Creare l'app .NET

  1. Creare un'app .NET usando il dotnet new comando :

    dotnet new console -n OpenAISpeech
    
  2. Passare alla directory della nuova app:

    cd OpenAISpeech
    

Installare la libreria client

Installare la Azure.OpenAI libreria client:

dotnet add package Azure.AI.OpenAI

L'autenticazione senza password è più sicura rispetto alle alternative basate su chiave ed è l'approccio consigliato per la connessione ai servizi di Azure. Se si sceglie di usare l'autenticazione senza password, è necessario completare le operazioni seguenti:

  1. Aggiungere il pacchetto Azure.Identity.

    dotnet add package Azure.Identity
    
  2. Assegnare il ruolo Cognitive Services User all'account utente. Questa operazione può essere eseguita nella portale di Azure nella risorsa OpenAI in Controllo di accesso (IAM)>Aggiungi assegnazione di ruolo.

  3. Accedere ad Azure usando Visual Studio o l'interfaccia della riga di comando di Azure tramite az login.

Aggiornare il codice dell'app

  1. Sostituire il contenuto di program.cs con il codice seguente e aggiornare i valori segnaposto con i propri.

    using Azure;
    using Azure.AI.OpenAI;
    using Azure.Identity;
    using OpenAI.Chat; // Required for Passwordless auth
    
    var endpoint = new Uri("YOUR_AZURE_OPENAI_ENDPOINT");
    var credentials = new AzureKeyCredential("YOUR_AZURE_OPENAI_KEY");
    // var credentials = new DefaultAzureCredential(); // Use this line for Passwordless auth
    var deploymentName = "gpt-4"; // Default name, update with your own if needed
    
    var openAIClient = new AzureOpenAIClient(endpoint, credentials);
    var chatClient = openAIClient.GetChatClient(deploymentName);
    
    var imageUri = "YOUR_IMAGE_URL";
    
    List<ChatMessage> messages = [
        new UserChatMessage(
            ChatMessageContentPart.CreateTextMessageContentPart("Please describe the following image:"),
            ChatMessageContentPart.CreateImageMessageContentPart(new Uri(imageUri), "image/png"))
    ];
    
    ChatCompletion chatCompletion = await chatClient.CompleteChatAsync(messages);
    
    Console.WriteLine($"[ASSISTANT]:");
    Console.WriteLine($"{chatCompletion.Content[0].Text}");
    

Importante

Si consiglia l'autenticazione di Microsoft Entra ID insieme alle identità gestite per le risorse di Azure al fine di evitare di archiviare le credenziali con le applicazioni eseguite nel cloud.

Usare le chiavi API con cautela. Non includere la chiave API direttamente nel codice e non esporla mai pubblicamente. Se si usano chiavi API, archiviarli in modo sicuro in Azure Key Vault, ruotare regolarmente le chiavi e limitare l'accesso ad Azure Key Vault usando il controllo degli accessi in base al ruolo e le restrizioni di accesso alla rete. Per altre informazioni sull'uso sicuro delle chiavi API nelle app, vedere Chiavi API con Azure Key Vault.

Per altre informazioni sulla sicurezza dei servizi di intelligenza artificiale, vedere Autenticare le richieste a Servizi di Azure AI.

  1. Eseguire l'applicazione usando il dotnet run comando o il pulsante Esegui nella parte superiore di Visual Studio:

    dotnet run
    

L'app genera un file audio nel percorso specificato per la speechFilePath variabile. Riprodurre il file nel dispositivo per ascoltare l'audio generato.

Pulire le risorse

Per pulire e rimuovere una risorsa OpenAI, è possibile eliminare la risorsa o il gruppo di risorse. L'eliminazione del gruppo di risorse comporta anche l'eliminazione di tutte le altre risorse associate.

Passaggi successivi