Condividi tramite


Estensione OpenAI di Azure per Funzioni di Azure

Importante

L'estensione OpenAI di Azure per Funzioni di Azure è attualmente in anteprima.

L'estensione OpenAI di Azure per Funzioni di Azure implementa un set di trigger e associazioni che consentono di integrare facilmente funzionalità e comportamenti del servizio Azure OpenAI nelle esecuzioni di codice della funzione.

Funzioni di Azure è un servizio di calcolo basato su eventi che fornisce un set di trigger e associazioni per connettersi facilmente ad altri servizi di Azure.

Con l'integrazione tra Azure OpenAI e Funzioni, è possibile creare funzioni che possono:

Azione Tipo di trigger/associazione
Usare una richiesta di testo standard per il completamento del contenuto Associazione di input di completamento del testo OpenAI di Azure
Rispondere a una richiesta di assistente per chiamare una funzione Trigger dell'assistente OpenAI di Azure
Creare un assistente L'assistente OpenAI di Azure crea l'associazione di output
Messaggio di un assistente Associazione post-input dell'assistente OpenAI di Azure
Ottenere la cronologia degli assistenti Associazione di input delle query per l'assistente Azure OpenAI
Leggere gli incorporamenti di testo Associazione di input incorporamento di Azure OpenAI
Scrivere in un database vettoriale Associazione di output dell'archivio di incorporamenti OpenAI di Azure
Leggere da un database vettoriale Associazione di input di ricerca semantica OpenAI di Azure

Installare l'estensione

Il pacchetto NuGet di estensione installato dipende dal processo di lavoro in-process o isolato in modalità C# in uso nell'app per le funzioni:

Aggiungere l'estensione OpenAI di Azure al progetto installando il pacchetto NuGet Microsoft.Azure.Functions.Worker.Extensions.OpenAI, che è possibile eseguire usando l'interfaccia della riga di comando di .NET:

dotnet add package Microsoft.Azure.Functions.Worker.Extensions.OpenAI  --prerelease

Quando si usa un database vettoriale per l'archiviazione del contenuto, è necessario installare almeno uno di questi pacchetti NuGet:

Installare il bundle

È possibile aggiungere l'estensione di anteprima aggiungendo o sostituendo il codice seguente nel host.json file, destinato in particolare a una versione di anteprima del bundle 4.x che contiene l'estensione OpenAI:

{
  "version": "2.0",
  "extensionBundle": {
    "id": "Microsoft.Azure.Functions.ExtensionBundle.Preview",
    "version": "[4.*, 5.0.0)"
  }
}

Connessione ad OpenAI

Per usare l'estensione di associazione OpenAI di Azure, è necessario specificare una connessione a OpenAI. Questa connessione viene definita usando le impostazioni dell'applicazione e la AIConnectionName proprietà del trigger o dell'associazione. È anche possibile usare le variabili di ambiente per definire connessioni basate su chiave.

È consigliabile usare connessioni gestite basate su identità e la AIConnectionName proprietà .

Le associazioni OpenAI hanno una AIConnectionName proprietà che è possibile usare per specificare per <ConnectionNamePrefix> questo gruppo di impostazioni dell'app che definiscono la connessione ad Azure OpenAI:

Nome impostazione Descrizione
<CONNECTION_NAME_PREFIX>__endpoint Imposta l'endpoint URI del servizio Azure OpenAI. Questa impostazione è sempre obbligatoria.
<CONNECTION_NAME_PREFIX>__clientId Imposta l'identità assegnata dall'utente specifica da usare per ottenere un token di accesso. Richiede che <CONNECTION_NAME_PREFIX>__credential sia impostato su managedidentity. La proprietà accetta un ID client corrispondente a un'identità assegnata dall'utente assegnata all'applicazione. Non è valido specificare sia un ID risorsa che un ID client. Se non specificata, viene usata l'identità assegnata dal sistema. Questa proprietà viene usata in modo diverso in scenari di sviluppo locale, quando non è consigliabile impostare credential.
<CONNECTION_NAME_PREFIX>__credential Definisce il modo in cui viene ottenuto un token di accesso per la connessione. Usare managedidentity per l'autenticazione dell'identità gestita. Questo valore è valido solo quando un'identità gestita è disponibile nell'ambiente di hosting.
<CONNECTION_NAME_PREFIX>__managedIdentityResourceId Quando credential è impostato su managedidentity, questa proprietà può essere impostata per specificare l'identificatore della risorsa da usare quando si ottiene un token. La proprietà accetta un identificatore di risorsa corrispondente all'ID risorsa dell'identità gestita definita dall'utente. Non è valido specificare sia un ID risorsa che un ID client. Se non viene specificato nessuno dei due valori, viene usata l'identità assegnata dal sistema. Questa proprietà viene usata in modo diverso in scenari di sviluppo locale, quando non è consigliabile impostare credential.
<CONNECTION_NAME_PREFIX>__key Imposta la chiave privata condivisa necessaria per accedere all'endpoint del servizio Azure OpenAI usando l'autenticazione basata su chiave. Come procedura consigliata per la sicurezza, è consigliabile usare sempre Microsoft Entra ID con identità gestite per l'autenticazione.

Prendere in considerazione queste impostazioni di connessione dell'identità gestita quando la AIConnectionName proprietà viene impostata su myAzureOpenAI:

  • myAzureOpenAI__endpoint=https://contoso.openai.azure.com/
  • myAzureOpenAI__credential=managedidentity
  • myAzureOpenAI__clientId=aaaaaaaa-bbbb-cccc-1111-222222222222

In fase di esecuzione, queste impostazioni vengono interpretate collettivamente dall'host come una singola myAzureOpenAI impostazione simile alla seguente:

"myAzureOpenAI":
{
    "endpoint": "https://contoso.openai.azure.com/",
    "credential": "managedidentity",
    "clientId": "aaaaaaaa-bbbb-cccc-1111-222222222222"
}

Quando si usano identità gestite, assicurarsi di aggiungere l'identità al ruolo Utente OpenAI di Servizi cognitivi .

Quando si esegue localmente, è necessario aggiungere queste impostazioni al file di progetto local.settings.json . Per altre informazioni, vedere Sviluppo locale con connessioni basate su identità.

Per altre informazioni, vedere Usare le impostazioni dell'applicazione.