Intégrations d’IA

Le package expérimental Microsoft.Testing.Platform.AI définit des abstractions IA neutres par le fournisseur pour les frameworks de test et les extensions MTP. Le package s’intègre avec Microsoft.Extensions.AI, afin qu’une extension puisse demander un IChatClient sans dépendre d’un fournisseur de modèle spécifique.

Important

Les API IA utilisent l’ID TPEXP de diagnostic et peuvent changer dans une prochaine version. Les packages fournissent l’infrastructure aux extensions ; ils n’ajoutent pas de comportement d’IA à une suite de tests par eux-mêmes.

Utiliser des outils de codage IA pour les flux de travail de test

Les packages de cet article permettent aux extensions MTP d’appeler des modèles IA pendant une exécution de test. Pour utiliser un assistant de codage IA pour créer, analyser ou migrer des tests dans votre référentiel, utilisez plutôt les compétences de l’agent .NET organisées.

Choisissez un flux de travail en fonction de votre objectif :

Objectif Compétence ou agent
Créer ou étendre des tests Utilisez la code-testing-agent compétence du dotnet-test plug-in. Les compétences recherchent la base de code, planifient le travail, implémentent des tests et vérifient les modifications.
Exécuter ou résoudre les problèmes des tests Utilisez la compétence pour exécuter des tests ou diagnostiquer l’exécution run-tests des tests sans modifier le code de test.
Qualité des tests d’audit Utilisez l’agenttest-quality-auditor pour une évaluation étendue ou appelez une compétence ciblée à partir du dotnet-test répertoire des compétences pour les assertions, la couverture, les lacunes de test ou les odeurs de test.
Améliorer la testabilité Utilisez l’agenttestability-migration pour rechercher des dépendances statiques et introduire des abstractions testables.
Migrer une infrastructure de test ou une plateforme Utilisez test-migration l’agent du dotnet-test-migration plugin. L’agent détecte la configuration actuelle et sélectionne la compétence de migration appropriée.

Pour connaître les étapes d’installation et les agents de codage pris en charge, consultez le référentiel compétences de l’agent .NET. Installez dotnet-test avec dotnet-test-migration, car les flux de travail de migration réutilisent ses fonctionnalités de détection de la plateforme et de vérification des tests.

Choisir les packages

Ajoutez le package d’abstractions lorsque vous créez une extension qui consomme un client de conversation. Ajoutez un package de fournisseur à l’application de test qui héberge l’extension :

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

Microsoft.Testing.Extensions.AzureFoundry est le fournisseur de référence fourni par Microsoft. Il crée un client de conversation OpenAI Azure via Azure AI Foundry.

Configurer Azure AI Foundry

Définissez les variables d’environnement suivantes :

Variable Required Description
AZURE_OPENAI_ENDPOINT Yes Le point de terminaison de la ressource Azure OpenAI, tel que https://my-resource.openai.azure.com.
AZURE_OPENAI_DEPLOYMENT_NAME Yes Nom du déploiement du modèle.
AZURE_OPENAI_API_KEY Conditional Clé API de la ressource. Définissez cette valeur sauf si vous enregistrez un TokenCredential dans le code.

Pour empêcher les informations d’identification du contrôle de code source, fournissez ces valeurs via votre environnement local ou un magasin de secrets CI protégé.

Inscrit le fournisseur

Désactivez le point d’entrée MTP généré et inscrivez le fournisseur dans votre méthode personnalisée Main . Pour l’authentification par clé API, appelez :

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

Pour Microsoft Entra ID ou l’identité managée, utilisez le package Azure.Identity et fournissez des informations d’identification :

using Azure.Identity;

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

Lorsque AZURE_OPENAI_API_KEY est défini, le fournisseur utilise la clé API avant les informations d’identification fournies. La résolution et l’authentification des informations d’identification se produisent lorsque la première demande de conversation s’exécute, de sorte que les erreurs de configuration peuvent ne pas apparaître lors de l’inscription du fournisseur.

Utiliser un client de chat

Implémentez IChatClientProvider pour intégrer un autre fournisseur d’IA. Une extension MTP peut récupérer le client de chat enregistré depuis son IServiceProvider:

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

L’appel retourne null lorsqu’aucun fournisseur disponible n’est inscrit. Avant qu’une extension envoie des données de test à un modèle, documentez les données qu’elle envoie et appliquez les exigences de confidentialité, de sécurité et de rétention pour ces données.

Voir aussi