Dijeli putem


Testiranje nedeterminističke umjetne inteligencije u Power Apps (pregled)

Napomena

Značajke pretpregleda nisu namijenjene u proizvodne svrhe i mogu imati ograničene funkcije. Te su značajke dostupne prije službenog izdavanja da bi se klijentima omogućio prijevremeni pristup i slanje povratnih informacija.

Testiranje aplikacija pokretanih umjetnom inteligencijom predstavlja jedinstvene izazove jer izlazi umjetne inteligencije mogu varirati između pokreta, čak i s identičnim ulazima. Ovo nedeterminističko ponašanje zahtijeva posebne pristupe testiranju. Ovaj vodič objašnjava kako učinkovito provjeriti AI komponente u svojim Power Platform aplikacijama.

Razumijevanje nedeterminističkih rezultata

Tradicionalno testiranje oslanja se na determinističke ulaze koji proizvode dosljedne rezultate. Međutim, sustavi umjetne inteligencije često svaki put daju malo drugačije rezultate zbog:

  • Postavke temperature modela i metode uzorkovanja
  • Odabir različitih verzija modela
  • Manje varijacije u obradi prirodnog jezika
  • Rezultati pouzdanosti koji variraju unutar normalnih raspona
  • Zaključivanje ovisno o kontekstu koje može ići različitim putevima

Strategije za testiranje nedeterminističke umjetne inteligencije

Power Apps Test Engine pruža nekoliko strategija za učinkovito testiranje komponenti pokretanih umjetnom inteligencijom:

Korištenje funkcije Preview.AIExecutePrompt

Funkcija Preview.AIExecutePrompt omogućuje kontrolirano izvršavanje upita umjetne inteligencije unutar vaših testova. Sljedeći primjer pokazuje kako ga koristiti:

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

Ovaj pristup vam omogućuje:

  • Izvršavanje upita s kontroliranim ulazima
  • Raščlanjivanje i provjera strukturiranih odgovora
  • Usporedba rezultata s očekivanim vrijednostima

Implementirajte provjeru valjanosti temeljenu na toleranciji

Umjesto da očekujete točna podudaranja, provjerite zadovoljavaju li izlazi kriterije unutar prihvatljivih pragova. Sljedeći kod je primjer:

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

Testirajte funkcionalnost jezgre, a ne točne rezultate

Usredotočite testove na provjeru ispunjava li komponenta umjetne inteligencije svoju osnovnu svrhu, kao što je prikazano u sljedećem primjeru:

// 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"
)

Upotreba strukturne provjere valjanosti za složene rezultate

Za složene odgovore umjetne inteligencije potvrdite strukturu odgovora, a ne određeni sadržaj kao što je prikazano u sljedećem primjeru:

// 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")

Korištenje Preview.AIExecutePrompt

Test Engine pruža funkciju Preview.AIExecutePrompt posebno za testiranje interakcija umjetne inteligencije.

Funkcijski potpis

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

Parametri

  • PromptName: naziv predloška upita koji će se koristiti
  • PromptContext: Kontekstni podaci za upit, koji obično sadrže:
    • Kontekst ili sistemska poruka
    • Pitanja ili korisnički unosi
    • Svi ostali parametri za model

Povratna vrijednost

Zapis koji sadrži:

  • Tekst: neobrađeni tekst odgovora
  • Ostala svojstva ovisno o predlošku i modelu upita

Omogućavanje funkcije

Da biste koristili ovu funkciju, omogućite modul AI funkcija u postavkama testa:

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

Primjer: testiranje komponente analize raspoloženja

Sljedeći primjer prikazuje testiranje značajke analize raspoloženja koju pokreće umjetna inteligencija:

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)
  })

Primjer: AI ocjenjivanje ocjenjivanja

Sljedeći primjer pokazuje upotrebu za Preview.AIExecutePrompt testiranje sustava ocjenjivanja koji pokreće umjetna inteligencija:

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}
  ))

Potpunu implementaciju možete istražiti u uzorku upitaza umjetnu inteligenciju.

Najbolje prakse za testiranje AI komponenti

Da biste stvorili učinkovite testove za komponente koje pokreće umjetna inteligencija:

  • Definiranje prihvatljivih raspona umjesto točnih vrijednosti za numeričke izlaze
  • Stvorite zaštitne ograde kako biste provjerili zadovoljavaju li izlazi strukturne zahtjeve
  • Testiranje s različitim ulazima , uključujući rubne slučajeve i rubne uvjete
  • Uključite negativne testne slučajeve kako biste osigurali da AI na odgovarajući način obrađuje nevažeće unose
  • Segmentirajte testove prema funkcionalnosti, a ne prema određenom sadržaju
  • Koristite odgovarajuća odstupanja na temelju kritičnosti komponente

Uobičajeni obrasci za testiranje umjetne inteligencije

Sljedeći primjeri ilustriraju uobičajene pristupe za testiranje značajki koje pokreće umjetna inteligencija u Power Platform aplikacijama. Ovi obrasci pomažu vam da potvrdite klasifikaciju sadržaja, rubne uvjete i druge scenarije u kojima se AI izlazi mogu razlikovati.

Ispitivanje klasifikacije sadržaja

// 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"
  ))

Granično ispitivanje

// 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"
  ))

Saznajte više o Power Fx testnim funkcijama
Istražite autorstvo testova potpomognuto umjetnom inteligencijom
Objašnjenje protokola konteksta modela
Pregledajte katalog uzoraka testnih motora