Yapay zeka tümleştirmeleri

Deneysel Microsoft.Testing.Platform.AI paketi, test çerçeveleri ve MTP uzantıları için sağlayıcıdan bağımsız yapay zeka soyutlamalarını tanımlar. Paket, Microsoft.Extensions.AI ile tümleşir; böylece bir uzantı, belirli bir model sağlayıcısına bağlı olmadan IChatClient isteyebilir.

Important

AI API'leri tanılama kimliğini kullanır TPEXP ve gelecekteki bir sürümde değişebilir. Paketler uzantılara altyapı sağlar; yapay zeka davranışını kendi başlarına test paketine eklemez.

Test iş akışları için yapay zeka kodlama araçlarını kullanma

Bu makaledeki paketler, MTP uzantılarının bir test çalıştırması sırasında yapay zeka modellerini çağırmasına izin verir. Deponuzda test oluşturmak, analiz etmek veya geçirmek için yapay zeka kodlama yardımcısı kullanmak için bunun yerine seçilmiş .NET Aracı Becerileri'ni kullanın.

Hedefinize göre bir iş akışı seçin:

Goal Beceri veya ajan
Testleri oluşturma veya genişletme Eklentideki code-testing-agent beceriyidotnet-testkullanın. Beceri, kod tabanını araştırarak çalışmayı planlar, testleri uygular ve değişiklikleri doğrular.
Testleri çalıştırma veya sorun giderme Test kodunu değiştirmeden testleri yürütmek veya test yürütmesini tanılamak için beceriyirun-tests kullanın.
Test kalitesini denetleme test-quality-auditor aracı geniş kapsamlı bir değerlendirme için kullanın veya doğrulamalar, kapsam, test boşlukları ya da test kokuları için dotnet-test beceri dizininden belirli bir beceriyi çağırın.
Test edilebilirliği geliştirme Statik bağımlılıkları bulmak ve test edilebilir soyutlamalar eklemek için aracıyıtestability-migration kullanın.
Test çerçevesi veya platformu geçirme dotnet-test-migration eklentisindekitest-migration aracıyı kullanın. Aracı geçerli kurulumu algılar ve uygun geçiş becerisini seçer.

Yükleme adımları ve desteklenen kodlama aracıları için .NET Aracı Becerileri deposuna bakın. Geçiş iş akışları, onun platform algılama ve test doğrulama yeteneklerini yeniden kullandığı için dotnet-test-migration bileşenini dotnet-test ile birlikte yükleyin.

Paketleri seçin

Sohbet istemcisi kullanan bir uzantı yazarken soyutlama paketini ekleyin. Uzantıyı barındıran test uygulamasına bir sağlayıcı paketi ekleyin:

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

Microsoft.Testing.Extensions.AzureFoundryMicrosoft tarafından sağlanan başvuru sağlayıcısıdır. Azure Yapay Zeka Atölyesi aracılığıyla bir Azure OpenAI sohbet istemcisi oluşturur.

Azure Yapay Zeka Atölyesi’yi yapılandırın

Aşağıdaki ortam değişkenlerini ayarlayın:

Variable Zorunlu Description
AZURE_OPENAI_ENDPOINT Yes Azure OpenAI kaynak uç noktası, örneğin https://my-resource.openai.azure.com.
AZURE_OPENAI_DEPLOYMENT_NAME Yes Model dağıtım adı.
AZURE_OPENAI_API_KEY Conditional Kaynak API anahtarı. Kodda bir TokenCredential kaydetmediğiniz sürece bu değeri ayarlayın.

Kimlik bilgilerini kaynak denetiminin dışında tutmak için bu değerleri yerel ortamınız veya korumalı bir CI gizli dizi deposu aracılığıyla sağlayın.

Sağlayıcıyı kaydetme

Oluşturulan MTP giriş noktasını devre dışı bırakın ve sağlayıcıyı özel Main yönteminize kaydedin. API anahtarı kimlik doğrulaması için şu çağrıyı yapın:

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

Microsoft Entra ID veya yönetilen kimlik için, Azure.Identity paketine başvurun ve bir kimlik bilgisi sağlayın:

using Azure.Identity;

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

AZURE_OPENAI_API_KEY Ayarlandığında, sağlayıcı sağlanan kimlik bilgisi öncesinde API anahtarını kullanır. İlk sohbet isteği çalıştırıldığında kimlik bilgisi çözümlemesi ve kimlik doğrulaması gerçekleşir, bu nedenle sağlayıcı kaydı sırasında yapılandırma hataları görünmeyebilir.

Bir sohbet istemcisi kullanma

Başka bir yapay zeka sağlayıcısını entegre etmek için IChatClientProvider öğesini uygulayın. Bir MTP uzantısı, kayıtlı sohbet istemcisini IServiceProvider üzerinden alabilir:

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

Kullanılabilir hiçbir sağlayıcı kaydedilmemişse çağrı null döndürür. Uzantı bir modele test verileri göndermeden önce, hangi verileri gönderdiğini belgeleyin ve bu veriler için gizlilik, güvenlik ve bekletme gereksinimlerini uygulayın.

Ayrıca bakınız