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.

Używanie narzędzi do kodowania sztucznej inteligencji do testowania przepływów pracy

Pakiety opisane w tym artykule pozwalają rozszerzeniom MTP wywoływać modele AI podczas wykonywania testu. Aby użyć asystenta AI do kodowania do tworzenia, analizy lub migracji testów w repozytorium, użyj zamiast tego wyselekcjonowanych umiejętności agenta .NET.

Wybierz przepływ pracy na podstawie celu:

Cel Umiejętność lub agent
Tworzenie lub rozszerzanie testów code-testing-agent Użyj umiejętności z dotnet-test wtyczki. Umiejętność bada bazę kodu, planuje pracę, implementuje testy i weryfikuje zmiany.
Uruchamianie lub rozwiązywanie problemów z testami run-tests Użyj umiejętności do wykonywania testów lub diagnozowania wykonywania testów bez zmieniania kodu testowego.
Inspekcja jakości testów Użyj test-quality-auditor agenta do ogólnej oceny albo wywołaj wyspecjalizowaną umiejętność z dotnet-test katalogu umiejętności do sprawdzania asercji, pokrycia, luk w testach lub antywzorców testowych.
Zwiększanie możliwości testowania Użyj agentatestability-migration, aby znaleźć zależności statyczne i wprowadzić testowalne abstrakcje.
Migracja frameworku testowego lub platformy Użyj test-migration agenta z dotnet-test-migration wtyczki. Agent wykrywa bieżącą konfigurację i wybiera odpowiednią umiejętność migracji.

Aby uzyskać instrukcje instalacji i obsługiwanych agentów kodowania, zobacz repozytorium umiejętności agenta .NET. Zainstaluj dotnet-test obok dotnet-test-migration, ponieważ przepływy migracji ponownie wykorzystują jego mechanizmy wykrywania platformy i weryfikacji 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