Aracılığıyla paylaş


Belirleyici olmayan yapay zekayı test etme Power Apps (önizleme)

Not

Önizleme özellikleri, üretimde kullanıma yönelik değildir ve sınırlı işlevselliğe sahip olabilir. Bu özellikler, müşterilerin erken erişim elde etmesi ve geri bildirim sağlaması amacıyla resmi sürümden önce kullanıma sunulur.

Yapay zeka destekli uygulamaları test etmek benzersiz zorluklar getirir çünkü yapay zeka çıkışları, aynı girdilerle bile çalıştırmalar arasında farklılık gösterebilir. Bu deterministik olmayan davranış, özel test yaklaşımları gerektirir. Bu kılavuz, uygulamalarınızdaki yapay zeka bileşenlerini etkili bir şekilde nasıl doğrulayacağınızı Power Platform açıklar.

Deterministik olmayan çıktıları anlama

Geleneksel test, tutarlı çıktılar üreten deterministik girdilere dayanır. Bununla birlikte, AI sistemleri genellikle aşağıdakiler nedeniyle her seferinde biraz farklı sonuçlar üretir:

  • Model sıcaklık ayarları ve örnekleme yöntemleri
  • Modellerin farklı versiyonlarını seçme
  • Doğal dil işlemede küçük farklılıklar
  • Normal aralıklarda dalgalanan güven puanları
  • Farklı yollar izleyebilecek bağlama bağlı akıl yürütme

Deterministik olmayan yapay zekayı test etmek için stratejiler

Power Apps Test Motoru, yapay zeka destekli bileşenleri etkili bir şekilde test etmek için çeşitli stratejiler sunar:

Preview.AIExecutePrompt işlevini kullanma

Preview.AIExecutePrompt işlevi , testlerinizde yapay zeka istemlerinin kontrollü bir şekilde yürütülmesini sağlar. Aşağıdaki örnekte nasıl kullanılacağı gösterilmektedir:

Response: ParseJSON(
  Preview.AIExecutePrompt("CustomPrompt",
  {
    Context: "You are a helpful assistant.",
    Question: "What is the capital of France?"
  }).Text)

Bu yaklaşım şunları yapmanızı sağlar:

  • Kontrollü girişlerle istemleri yürütün
  • Yapılandırılmış yanıtları ayrıştırma ve doğrulama
  • Sonuçları beklenen değerlerle karşılaştırın

Tolerans tabanlı doğrulama uygulayın

Tam eşleşmeler beklemek yerine, çıkışların kabul edilebilir eşikler içindeki ölçütleri karşıladığını doğrulayın. Aşağıdaki kod bir örnektir:

// Validate that the sentiment score is within appropriate range
Assert(Response.SentimentScore >= 0.7, "Sentiment score should be positive")

Kesin çıktılar yerine temel işlevselliği test edin

Aşağıdaki örnekte gösterildiği gibi yapay zeka bileşeninin temel amacını yerine getirdiğini doğrulamaya odaklanan testler:

// Check that the classification happens (not the exact classification)
Assert(
  Response.Category = "Positive" || 
  Response.Category = "Neutral" || 
  Response.Category = "Negative", 
  "Response should include a valid sentiment category"
)

Karmaşık çıktılar için yapısal doğrulama kullanın

Karmaşık yapay zeka yanıtları için, aşağıdaki örnekte gösterildiği gibi belirli içerik yerine yanıt yapısını doğrulayın:

// Verify all expected fields exist in the response
Assert(!IsBlank(Response.Rating), "Rating should be present")
Assert(!IsBlank(Response.Explanation), "Explanation should be present")
Assert(!IsBlank(Response.NextSteps), "Next steps should be present")

Preview.AIExecutePrompt kullanma

Test Altyapısı, özellikle yapay zeka etkileşimlerini test etmek için Preview.AIExecutePrompt işlevini sağlar.

İşlev imzası

Preview.AIExecutePrompt(
  PromptName: Text, 
  PromptContext: Record
): Record

Parametreler

  • PromptName: Kullanılacak bilgi istemi şablonunun adı
  • PromptContext: İstem için bağlam verileri, genellikle şunları içerir:
    • Bağlam veya sistem mesajı
    • Sorular veya kullanıcı girişleri
    • Model için diğer parametreler

Dönüş değeri

Aşağıdakileri içeren bir kayıt:

  • Metin: Ham yanıt metni
  • Bilgi istemi şablonuna ve modele bağlı olarak diğer özellikler

İşlevin etkinleştirilmesi

Bu işlevi kullanmak için test ayarlarınızda AI işlevleri modülünü etkinleştirin:

testSettings:
  extensionModules:
    enable: true
    parameters:
      enableAIFunctions: true

Örnek: Bir yaklaşım analizi bileşenini test etme

Aşağıdaki örnekte yapay zeka destekli bir yaklaşım analizi özelliğinin test edilmesi gösterilmektedir:

EvaluateSentimentPrompt(Input: Text): TestResult =
  With({
    Response: ParseJSON(
      Preview.AIExecutePrompt("SentimentAnalyzer",
      {
        Text: Input
      }).Text)
  },
  {
    Result: Response.Sentiment,
    Score: Response.ConfidenceScore,
    IsPositive: Response.Sentiment = "Positive" && Response.ConfidenceScore > 0.7,
    IsValid: !IsBlank(Response.Sentiment) && !IsBlank(Response.ConfidenceScore)
  })

Örnek: Derecelendirme değerlendirmesi AI

Aşağıdaki örnek, yapay zeka destekli bir derecelendirme sistemini test etmek için kullanmayı Preview.AIExecutePrompt gösterir:

EvaluateTestQuestionPrompt(Prompt: TestQuestion): TestResult =
  With({
    Response: ParseJSON(
      Preview.AIExecutePrompt("PromptEvaluator",
      {
        Context: "You are a helpful agent asking about external customer service questions.",
        Question: Prompt.Question
      }).Text)
  },If(
    IsError(AssertNotError(Prompt.ExpectedRating=Response.Rating, Prompt.Question & ", Expected " & Prompt.ExpectedRating & ", Actual " & Response.Rating)),
    {PassFail: 1, Summary: Prompt.Question & ", Expected " & Prompt.ExpectedRating & ", Actual " & Response.Rating}, 
    {PassFail: 0, Summary: "Pass " & Prompt.Question}
  ))

AI Prompt örneğinde eksiksiz bir uygulamayı keşfedebilirsiniz.

Yapay zeka bileşen testi için en iyi uygulamalar

Yapay zeka destekli bileşenler için etkili testler oluşturmak için:

  • Sayısal çıktılar için kesin değerler yerine kabul edilebilir aralıklar tanımlayın
  • Çıkışların yapısal gereksinimleri karşıladığını doğrulamak için koruma rayları oluşturun
  • Kenar durumları ve sınır koşulları dahil olmak üzere çeşitli girdilerle test edin
  • Yapay zekanın geçersiz girişleri uygun şekilde işlediğinden emin olmak için negatif test senaryolarını dahil edin
  • Testlerinizi belirli içerik yerine işlevselliğe göre bölümlere ayırın
  • Bileşenin kritikliğine bağlı olarak uygun toleransları kullanın

Yapay zeka testi için yaygın kalıplar

Aşağıdaki örneklerde, uygulamalarda yapay zeka destekli özellikleri Power Platform test etmeye yönelik yaygın yaklaşımlar gösterilmektedir. Bu desenler içerik sınıflandırmasını, sınır koşullarını ve yapay zeka çıkışlarının farklılık gösterebileceği diğer senaryoları doğrulamanıza yardımcı olur.

İçerik sınıflandırma testi

// Test that a content classifier produces valid categories
ClassifyContent(Text: Text): Record = 
  With({
    Result: ParseJSON(Preview.AIExecutePrompt("Classifier", { Content: Text }).Text)
  },
  Assert(
    Result.Category In ["News", "Opinion", "Advertisement"], 
    "Content should be classified into valid category"
  ))

Sınır testi

// Test AI Builder form processing with edge cases
TestFormProcessing(FormType: Text): TestResult =
  With({
    Result: ParseJSON(Preview.AIExecutePrompt("FormProcessor", { FormType: FormType }).Text)
  },
  Assert(
    !IsBlank(Result.Fields),
    "Form processing should extract fields even with poor quality input"
  ))

Test işlevleri hakkında Power Fx bilgi edinin
Yapay zeka destekli test yazmayı keşfedin
Model Bağlam Protokolünü Anlama
Test Altyapısı örnekleri kataloğuna göz atın