Integraciones de IA

El paquete experimental Microsoft.Testing.Platform.AI define abstracciones de IA neutras del proveedor para marcos de pruebas y extensiones MTP. El paquete se integra con Microsoft.Extensions.AI, por lo que una extensión puede solicitar un IChatClient sin depender de un proveedor de modelos específico.

Importante

Las API de IA usan el TPEXP identificador de diagnóstico y pueden cambiar en una versión futura. Los paquetes proporcionan infraestructura a las extensiones; no añaden por sí solos funcionalidad de IA a un conjunto de pruebas.

Uso de herramientas de codificación de IA para flujos de trabajo de prueba

Los paquetes de este artículo permiten que las extensiones de MTP llamen a modelos de IA durante una ejecución de prueba. Para usar un asistente de codificación de IA para crear, analizar o migrar pruebas en el repositorio, use las aptitudes del agente de .NET seleccionadas en su lugar.

Elija un flujo de trabajo en función de su objetivo:

Objetivo Habilidad o agente
Creación o ampliación de pruebas Usa la code-testing-agent habilidad del dotnet-test complemento. La aptitud investiga el código base, planea el trabajo, implementa pruebas y comprueba los cambios.
Ejecución o solución de problemas de pruebas Use la aptitud para ejecutar pruebas o diagnosticar la ejecución de pruebas sin cambiar el run-tests código de prueba.
Auditar la calidad de las pruebas Utilice el test-quality-auditor agente para una evaluación general, o invoque una habilidad específica del dotnet-test directorio de habilidades para afirmaciones, cobertura, lagunas en las pruebas o indicios de problemas en las pruebas.
Mejora de la capacidad de prueba Use el testability-migration agente para buscar dependencias estáticas e introducir abstracciones probables.
Migración de un marco de pruebas o una plataforma Utilice el test-migration agente del dotnet-test-migration complemento. El agente detecta la configuración actual y selecciona la aptitud de migración adecuada.

Para conocer los pasos de instalación y los agentes de codificación admitidos, consulte el repositorio de aptitudes del agente de .NET. Instale dotnet-test junto con dotnet-test-migration porque los flujos de trabajo de migración reutilizan sus aptitudes de detección de plataformas y comprobación de pruebas.

Elección de los paquetes

Agregue el paquete de abstracciones al crear una extensión que consuma un cliente de chat. Agregue un paquete de proveedor a la aplicación de prueba que hospeda la extensión:

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

Microsoft.Testing.Extensions.AzureFoundryes el proveedor de referencia proporcionado por Microsoft. Crea un cliente de chat de OpenAI Azure a través de Fundición de IA de Azure.

Configuración de Fundición de IA de Azure

Establezca estas variables de entorno:

Variable Obligatorio Description
AZURE_OPENAI_ENDPOINT El punto de conexión del recurso de Azure OpenAI, como https://my-resource.openai.azure.com.
AZURE_OPENAI_DEPLOYMENT_NAME El nombre de la implementación del modelo.
AZURE_OPENAI_API_KEY Condicional Clave de API del recurso. Establece este valor a menos que registres un TokenCredential en el código.

Para mantener las credenciales fuera del control de código fuente, proporcione estos valores a través del entorno local o un almacén de secretos de CI protegido.

Registra el proveedor.

Deshabilite el punto de entrada MTP generado y registre el proveedor en el método personalizado Main . Para la autenticación con clave de API, llame a:

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

Para Microsoft Entra ID o identidad administrada, haga referencia al Azure.Identity paquete y pase una credencial:

using Azure.Identity;

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

Cuando AZURE_OPENAI_API_KEY se establece, el proveedor usa la clave de API antes de la credencial proporcionada. La resolución de credenciales y la autenticación se producen cuando se ejecuta la primera solicitud de chat, por lo que es posible que los errores de configuración no aparezcan durante el registro del proveedor.

Utilizar un cliente de chat

Implemente IChatClientProvider para integrar otro proveedor de IA. Una extensión MTP puede recuperar el cliente de chat registrado a partir de su IServiceProvider:

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

La llamada devuelve null cuando no hay ningún proveedor disponible registrado. Antes de que una extensión envíe datos de prueba a un modelo, documente qué datos envía y aplica los requisitos de privacidad, seguridad y retención para esos datos.

Véase también