Integracje sztucznej inteligencji

Eksperymentalny pakiet Microsoft.Testing.Platform.AI definiuje abstrakcje sztucznej inteligencji neutralne dla dostawcy dla struktur testowych i rozszerzeń MTP. Pakiet integruje się z Microsoft.Extensions.AI, dzięki czemu rozszerzenie może zażądać IChatClient bez zależności od konkretnego dostawcy modelu.

Ważna

Interfejsy API AI korzystają z identyfikatora diagnostycznego TPEXP i mogą ulec zmianie w jednej z przyszłych wersji. Pakiety dostarczają infrastrukturę do rozszerzeń; nie dodawają zachowania sztucznej inteligencji do samego zestawu testów.

Wybieranie pakietów

Dodaj pakiet abstrakcji podczas tworzenia rozszerzenia korzystającego z klienta czatu. Dodaj pakiet dostawcy do aplikacji testowej, która hostuje rozszerzenie:

dotnet add package Microsoft.Testing.Platform.AI
dotnet add package Microsoft.Testing.Extensions.AzureFoundry

Microsoft.Testing.Extensions.AzureFoundryjest dostawcą referencyjnym udostępnianym przez Microsoft. Tworzy on klienta czatu Azure OpenAI za pośrednictwem Azure AI Foundry.

Konfigurowanie Azure AI Foundry

Ustaw następujące zmienne środowiskowe:

Variable Wymagane Opis
AZURE_OPENAI_ENDPOINT Yes Punkt końcowy zasobu Azure OpenAI, taki jak https://my-resource.openai.azure.com.
AZURE_OPENAI_DEPLOYMENT_NAME Yes Nazwa wdrożenia modelu.
AZURE_OPENAI_API_KEY Warunkowy Klucz API zasobu. Ustaw tę wartość, chyba że zarejestrujesz w kodzie element TokenCredential.

Aby nie przechowywać poświadczeń w systemie kontroli wersji, przekaż te wartości przez lokalne zmienne środowiskowe lub chroniony magazyn sekretów CI.

Rejestrowanie dostawcy

Wyłącz wygenerowany punkt wejścia dla MTP i zarejestruj dostawcę w niestandardowej metodzie Main. W przypadku uwierzytelniania za pomocą klucza API wywołaj:

#pragma warning disable TPEXP
builder.AddAzureOpenAIChatClientProvider();
#pragma warning restore TPEXP

W przypadku Microsoft Entra ID lub tożsamości zarządzanej należy odwołać się do pakietu Azure.Identity i przekazać poświadczenie:

using Azure.Identity;

#pragma warning disable TPEXP
builder.AddAzureOpenAIChatClientProvider(new DefaultAzureCredential());
#pragma warning restore TPEXP

Gdy ustawiono AZURE_OPENAI_API_KEY, dostawca używa klucza API zamiast podanych poświadczeń. Rozpoznawanie i uwierzytelnianie poświadczeń występuje po uruchomieniu pierwszego żądania czatu, dlatego błędy konfiguracji mogą nie pojawiać się podczas rejestracji dostawcy.

Korzystanie z klienta czatu

Zaimplementuj IChatClientProvider , aby zintegrować innego dostawcę sztucznej inteligencji. Rozszerzenie MTP może pobrać zarejestrowanego klienta czatu z poziomu programu IServiceProvider:

IChatClient? client =
    await serviceProvider.GetChatClientAsync(cancellationToken);

Wywołanie zwraca null, gdy nie zarejestrowano żadnego dostępnego dostawcy. Przed wysłaniem przez rozszerzenie danych testowych do modelu należy udokumentować, jakie dane wysyła, i zastosować wymagania dotyczące prywatności, zabezpieczeń i przechowywania tych danych.

Zobacz także