Condividi tramite


integrazione di .NET AspireAzureOpenAI

Questo articolo illustra come usare il client .NET AspireAzureOpenAI. La libreria Aspire.Azure.AI.OpenAI viene usata per registrare un OpenAIClient nel contenitore di iniezione delle dipendenze per l'utilizzo delle funzionalità di Azure,OpenAI o OpenAI. Abilita la registrazione e i dati di telemetria corrispondenti.

Per ulteriori informazioni sull'uso di OpenAIClient, consulta Guida rapida: Introduzione alla generazione di testo con il servizio AzureOpenAI.

Inizia

Per iniziare a usare l'integrazione di .NET AspireAzureOpenAI, installare il pacchetto NuGet 📦Aspire.Azure.AI.OpenAI nel progetto che utilizza il client, ovvero nel progetto dell'applicazione che usa il client AzureOpenAI.

dotnet add package Aspire.Azure.AI.OpenAI

Per altre informazioni, vedere dotnet add package o Gestire le dipendenze dei pacchetti nelle applicazioni .NET.

Esempio di utilizzo

Nel file Program.cs del progetto che usa il client chiamare il metodo di estensione per registrare un OpenAIClient da usare tramite il contenitore di inserimento delle dipendenze. Il metodo accetta un parametro del nome di connessione.

builder.AddAzureOpenAIClient("openAiConnectionName");

Nel codice precedente, il metodo AddAzureOpenAIClient aggiunge un OpenAIClient al contenitore DI. Il parametro openAiConnectionName è il nome della stringa di connessione nella configurazione. È quindi possibile recuperare l'istanza di OpenAIClient usando l'iniezione delle dipendenze. Ad esempio, per recuperare la connessione da un servizio di esempio:

public class ExampleService(OpenAIClient client)
{
    // Use client...
}

Utilizzo dell'host dell'app

Per aggiungere supporto per l'hosting al , installare il . Ospitare.. CognitiveServices pacchetto NuGet nel progetto host dell'app .

dotnet add package Aspire.Hosting.Azure.CognitiveServices

Nel progetto host dell'app registrare una risorsa AzureOpenAI usando i metodi seguenti, ad esempio AddAzureOpenAI:

var builder = DistributedApplication.CreateBuilder(args);

var openai = builder.ExecutionContext.IsPublishMode
    ? builder.AddAzureOpenAI("openAiConnectionName")
    : builder.AddConnectionString("openAiConnectionName");

builder.AddProject<Projects.ExampleProject>()
       .WithReference(openai);

Il metodo AddAzureAIOpenAI leggerà le informazioni di connessione dalla configurazione dell'app host (ad esempio, da "segreti utente") sotto la chiave di configurazione ConnectionStrings:openAiConnectionName. Il metodo WithReference passa tali informazioni di connessione in una stringa di connessione denominata openAiConnectionName nel progetto ExampleProject. Nel file Program.cs di ExampleProject la connessione può essere utilizzata usando:

builder.AddAzureAIOpenAI("openAiConnectionName");

Configurazione

L'integrazione .NET AspireAzureOpenAI offre più opzioni per configurare la connessione in base ai requisiti e alle convenzioni del progetto.

Usare una stringa di connessione

Quando si usa una stringa di connessione dalla sezione di configurazione ConnectionStrings, è possibile specificare il nome della stringa di connessione quando si chiama builder.AddAzureAIOpenAI:

builder.AddAzureAIOpenAI("openAiConnectionName");

La stringa di connessione viene recuperata dalla sezione di configurazione ConnectionStrings e sono disponibili due formati supportati, ovvero l'endpoint dell'account usato insieme alla credenziale predefinita Azure o a una stringa di connessione con la chiave dell'account.

Endpoint dell'account

L'approccio consigliato consiste nell'usare un Endpoint, che funziona con la proprietà AzureOpenAISettings.Credential per stabilire una connessione. Se non è configurata alcuna credenziale, viene usato il DefaultAzureCredential.

{
  "ConnectionStrings": {
    "openAiConnectionName": "https://{account_name}.openai.azure.com/"
  }
}

Per altre informazioni, vedere Usare AzureOpenAI senza chiavi.

Stringa di connessione

In alternativa, è possibile usare una stringa di connessione personalizzata.

{
  "ConnectionStrings": {
    "openAiConnectionName": "Endpoint=https://{account_name}.openai.azure.com/;Key={account_key};"
  }
}

Per connettersi al servizio nonAzureOpenAI, eliminare la proprietà Endpoint e impostare solo la proprietà Key per impostare la chiave API .

Usare i fornitori di configurazione

L'integrazione .NET AspireAzureOpenAI supporta Microsoft.Extensions.Configuration. Carica il AzureOpenAISettings dalla configurazione usando la chiave Aspire:Azure:AI:OpenAI. Esempio appsettings.json che configura alcune delle opzioni:

{
  "Aspire": {
    "Azure": {
      "AI": {
        "OpenAI": {
          "DisableTracing": false,
        }
      }
    }
  }
}

Usare delegati inline

È anche possibile passare il delegato Action<AzureOpenAISettings> configureSettings per configurare alcune o tutte le opzioni in linea, ad esempio per disabilitare il tracciamento direttamente dal codice:

builder.AddAzureAIOpenAI(
    "openAiConnectionName",
    static settings => settings.DisableTracing = true);

È anche possibile configurare OpenAIClientOptions usando il parametro facoltativo Action<IAzureClientBuilder<OpenAIClient, OpenAIClientOptions>> configureClientBuilder del metodo AddAzureAIOpenAI. Ad esempio, per impostare l'ID client per questo client:

builder.AddAzureAIOpenAI(
    "openAiConnectionName",
    configureClientBuilder: builder => builder.ConfigureOptions(
        options => options.Diagnostics.ApplicationId = "CLIENT_ID"));

Osservabilità e telemetria

.NET .NET Aspire le integrazioni impostano automaticamente le configurazioni di logging, tracciamento e metriche, talvolta chiamate i pilastri dell'osservabilità. Per altre informazioni sull'osservabilità e la telemetria dell'integrazione, vedere panoramica delle integrazioni .NET.NET Aspire. A seconda del servizio di backup, alcune integrazioni possono supportare solo alcune di queste funzionalità. Ad esempio, alcune integrazioni supportano la registrazione e la traccia, ma non le metriche. Le funzionalità di telemetria possono essere disabilitate anche usando le tecniche presentate nella sezione Configurazione .

Registrazione

L'integrazione .NET AspireAzureOpenAI usa le categorie di log seguenti:

  • Azure
  • Azure.Core
  • Azure.Identity

Vedere anche