AI-integreringar

Det experimentella Microsoft.Testing.Platform.AI-paketet definierar providerneutrala AI-abstraktioner för testramverk och MTP-tillägg. Paketet integreras med Microsoft.Extensions.AI, så att ett tillägg kan begära en IChatClient utan att vara beroende av en specifik modellleverantör.

Important

AI-API:erna använder diagnostik-ID TPEXP :t och kan ändras i en framtida version. Paketen tillhandahåller infrastruktur till tillägg. de lägger inte till AI-beteende i en testsvit på egen hand.

Använda AI-kodningsverktyg för testarbetsflöden

Paketen i den här artikeln gör att MTP-tillägg kan anropa AI-modeller under en testkörning. Om du vill använda en AI-kodningsassistent för att skapa, analysera eller migrera tester i ditt kodförråd ska du i stället använda de utvalda .NET-agentfärdigheterna.

Välj ett arbetsflöde baserat på ditt mål:

Mål Skicklighet eller agent
Skapa eller utöka tester Använd code-testing-agent färdigheten från dotnet-test pluginet. Kunskapen undersöker kodbasen, planerar arbetet, implementerar tester och verifierar ändringarna.
Köra eller felsöka tester Använd run-tests funktionen för att köra tester eller diagnostisera testkörningar utan att ändra testkoden.
Granskningstestkvalitet Använd agententest-quality-auditor för en bred utvärdering eller anropa en fokuserad färdighet från kompetenskatalogendotnet-test för intyg, täckning, testluckor eller testlukt.
Förbättra testbarheten Använd agententestability-migration för att hitta statiska beroenden och introducera testbara abstraktioner.
Migrera ett testramverk eller en plattform Använd agententest-migration från plugin-programmetdotnet-test-migration. Agenten identifierar den aktuella konfigurationen och väljer lämplig migreringsfärdighet.

Installationssteg och kodningsagenter som stöds finns i lagringsplatsen .NET agentkunskaper. Installera dotnet-test tillsammans dotnet-test-migration eftersom migreringsarbetsflöden återanvänder sina kunskaper om plattformsidentifiering och testverifiering.

Välj paketen

Lägg till abstraktionspaketet när du skapar ett tillägg som använder en chattklient. Lägg till ett leverantörspaket i testapplikationen som är värd för tillägget:

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

Microsoft.Testing.Extensions.AzureFoundry är referensprovidern från Microsoft. Den skapar en Azure OpenAI-chattklient via Azure AI Foundry.

Konfigurera Azure AI Foundry

Ange följande miljövariabler:

Variable Obligatoriskt Description
AZURE_OPENAI_ENDPOINT Yes Resursslutpunkten Azure OpenAI, till exempel https://my-resource.openai.azure.com.
AZURE_OPENAI_DEPLOYMENT_NAME Yes Namnet på modelldistributionen.
AZURE_OPENAI_API_KEY Villkorlig API-nyckeln för resursen. Ange det här värdet om du inte registrerar en TokenCredential i kod.

Om du vill hålla autentiseringsuppgifterna borta från källkontrollen anger du dessa värden via din lokala miljö eller ett skyddat CI-hemligt arkiv.

Registrera providern

Inaktivera den genererade MTP-startpunkten och registrera providern i din anpassade Main metod. För API-nyckelautentisering anropar du:

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

För Microsoft Entra ID eller hanterad identitet refererar du till Azure.Identity paketet och skickar en autentiseringsuppgift:

using Azure.Identity;

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

När AZURE_OPENAI_API_KEY har angetts använder providern API-nyckeln före den angivna autentiseringsuppgiften. Matchning och autentisering av autentiseringsuppgifter inträffar när den första chattbegäran körs, så konfigurationsfel kanske inte visas under providerregistreringen.

Använd en chattklient

Implementera IChatClientProvider för att integrera en annan AI-provider. Ett MTP-tillägg kan hämta den registrerade chattklienten från sitt IServiceProvider:

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

Anropet returnerar null när ingen tillgänglig provider har registrerats. Innan ett tillägg skickar testdata till en modell dokumenterar du vilka data som skickas och tillämpar sekretess-, säkerhets- och kvarhållningskraven för dessa data.

Se även