Jagamisviis:


Mittedeterministliku tehisintellekti testimine rakenduses Power Apps (eelvaade)

Märkus.

Eelvaatefunktsioonid ei ole mõeldud kasutamiseks tootmises ja nende funktsioonid võivad olla piiratud. Need funktsioonid on saadaval enne ametlikku väljastamist, et kliendid saaksid sellele varakult juurdepääsu ja võiksid tagasisidet anda.

Tehisintellektil põhinevate rakenduste testimine toob kaasa ainulaadseid väljakutseid, kuna tehisintellekti väljundid võivad testide vahel erineda isegi identsete sisendite korral. See mittedeterministlik käitumine nõuab spetsiaalseid testimismeetodeid. See juhend selgitab, kuidas oma rakendustes tehisintellekti komponente tõhusalt valideerida. Power Platform

Mittedeterministlike väljundite mõistmine

Traditsiooniline testimine tugineb deterministlikele sisenditele, mis annavad järjepidevaid väljundeid. Siiski annavad tehisintellekti süsteemid iga kord veidi erinevaid tulemusi järgmistel põhjustel:

  • Mudeli temperatuuri seaded ja proovivõtumeetodid
  • Erinevate mudeliversioonide valimine
  • Väikesed erinevused loomuliku keele töötlemisel
  • Usaldusskoorid, mis kõiguvad normi piires
  • Kontekstist sõltuv arutluskäik, mis võib minna erinevaid teid

Mittedeterministliku tehisintellekti testimise strateegiad

Power Apps Testimootor pakub tehisintellektil põhinevate komponentide tõhusaks testimiseks mitmeid strateegiaid:

Kasutage funktsiooni Preview.AIExecutePrompt

Funktsioon Preview.AIExecutePrompt võimaldab tehisintellekti viipade kontrollitud täitmist teie testides. Järgnev näide demonstreerib, kuidas seda kasutada:

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

See lähenemisviis võimaldab teil:

  • Käivita juhitavate sisenditega käske
  • Struktureeritud vastuste analüüsimine ja valideerimine
  • Võrdle tulemusi oodatavate väärtustega

Rakenda tolerantsipõhist valideerimist

Täpsete vastete ootamise asemel kontrolli, kas väljundid vastavad vastuvõetavate lävede piires olevatele kriteeriumidele. Järgnev kood on näide:

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

Testi põhifunktsioone täpsete väljundite asemel

Keskenduge testides tehisintellekti komponendi põhieesmärgi täitmise valideerimisele, nagu on näidatud järgmises näites:

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

Kasutage keerukate väljundite puhul struktuuri valideerimist

Komplekssete tehisintellekti vastuste puhul valideeri vastuse struktuuri, mitte konkreetset sisu, nagu on näidatud järgmises näites:

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

Eelvaate kasutamine.AIExecutePrompt

Testimootor pakub funktsiooni Preview.AIExecutePrompt spetsiaalselt tehisintellekti interaktsioonide testimiseks.

Funktsiooni allkiri

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

Parameetrid

  • PromptName: Kasutatava käsuviiba malli nimi
  • PromptContext: Viiba kontekstiandmed, mis tavaliselt sisaldavad:
    • Kontekst või süsteemisõnum
    • Küsimused või kasutaja sisendid
    • Mudeli muud parameetrid

Tagastusväärtus

Kirje, mis sisaldab:

  • Tekst: Vastuse algtekst
  • Muud omadused, mis sõltuvad päringu mallist ja mudelist

Funktsiooni lubamine

Selle funktsiooni kasutamiseks lubage oma testimisseadetes tehisintellekti funktsioonide moodul:

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

Näide: Sentimendianalüüsi komponendi testimine

Järgnev näide demonstreerib tehisintellektil põhineva meeleoluanalüüsi funktsiooni testimist:

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

Näide: Hinnangu hindamise tehisintellekt

Järgnev näide demonstreerib tehisintellektil põhineva hindamissüsteemi testimist, kasutades ``:``: Preview.AIExecutePrompt

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

Täieliku rakendusega saate tutvuda AI-viiba näidises.

Tehisintellekti komponentide testimise parimad tavad

Tehisintellektil põhinevate komponentide jaoks tõhusate testide loomiseks:

  • Määrake numbriliste väljundite puhul täpsete väärtuste asemel vastuvõetavad vahemikud
  • Looge piirded, et kontrollida väljundite vastavust konstruktsiooninõuetele
  • Testige erinevate sisenditega, sh äärejuhtumite ja piiritingimustega
  • Lisage negatiivsed testijuhtumid, et tagada tehisintellekti nõuetekohane vigaste sisendite käsitlemine
  • Segmenteeri oma testid funktsionaalsuse, mitte konkreetse sisu järgi
  • Kasutage komponendi kriitilisuse põhjal sobivaid tolerantse

Tehisintellekti testimise tavalised mustrid

Järgmised näited illustreerivad tehisintellektil põhinevate funktsioonide testimise levinud lähenemisviise rakendustes. Power Platform Need mustrid aitavad teil valideerida sisu klassifitseerimist, piiritingimusi ja muid stsenaariume, kus tehisintellekti väljundid võivad erineda.

Sisu klassifitseerimise testimine

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

Piiride testimine

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

Lisateave testimisfunktsioonide kohta Power Fx
Avasta tehisintellekti abil testide koostamine
Mudeli konteksti protokolli mõistmine
Sirvige testmootori näidiste kataloogi