Integrações de IA

O pacote experimental Microsoft.Testing.Platform.AI define abstrações de IA neutras para estruturas de teste e extensões MTP. O pacote é integrado com Microsoft.Extensions.AI, portanto, uma extensão pode solicitar um IChatClient sem depender de um provedor de modelo específico.

Important

As APIs de IA usam a TPEXP ID de diagnóstico e podem ser alteradas em uma versão futura. Os pacotes fornecem infraestrutura para extensões; eles não adicionam comportamento de IA a um conjunto de testes sozinhos.

Escolher os pacotes

Adicione o pacote de abstrações ao criar uma extensão que consome um cliente de chat. Adicione um pacote de provedor ao aplicativo de teste que hospeda a extensão:

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

Microsoft.Testing.Extensions.AzureFoundryé o provedor de referência fornecido por Microsoft. Ele cria um cliente de chat Azure OpenAI por meio de Fábrica de IA do Azure.

Configurar Fábrica de IA do Azure

Defina as seguintes variáveis de ambiente:

Variable Obrigatório Description
AZURE_OPENAI_ENDPOINT Yes O endpoint do recurso Azure OpenAI, como https://my-resource.openai.azure.com.
AZURE_OPENAI_DEPLOYMENT_NAME Yes O nome da implantação do modelo.
AZURE_OPENAI_API_KEY Condicional A chave de API do recurso. Defina esse valor a menos que você registre um TokenCredential no código.

Para manter as credenciais fora do controle do código-fonte, forneça esses valores por meio do ambiente local ou de um repositório secreto de CI protegido.

Registrar o provedor

Desabilite o ponto de entrada MTP gerado e registre o provedor em seu método personalizado Main . Para autenticação de chave de API, chame:

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

Para Microsoft Entra ID ou identidade gerenciada, faça referência ao Azure.Identity pacote e passe uma credencial:

using Azure.Identity;

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

Quando AZURE_OPENAI_API_KEY é definido, o provedor usa a chave de API antes da credencial fornecida. A resolução e a autenticação de credenciais ocorrem quando a primeira solicitação de chat é executada, portanto, os erros de configuração podem não aparecer durante o registro do provedor.

Consumir um cliente de chat

Implemente IChatClientProvider para integrar outro provedor de IA. Uma extensão MTP pode obter o cliente de chat registrado a partir de seu IServiceProvider:

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

A chamada retorna null quando nenhum provedor disponível é registrado. Antes que uma extensão envie dados de teste para um modelo, documente quais dados ele envia e aplique os requisitos de privacidade, segurança e retenção para esses dados.

Consulte também