Jaa


Ei-deterministisen tekoälyn testaaminen ( Power Apps esikatselu)

Muistiinpano

Esiversiotoimintoja ei ole tarkoitettu tuotantokäyttöön, ja niiden toiminnot voivat olla rajoitettuja. Nämä toiminnot ovat käytettävissä ennen virallista julkaisua, jotta asiakkaat voivat käyttää niiden ennakkojulkaisua ja antaa palautetta.

Tekoälypohjaisten sovellusten testaaminen tuo mukanaan ainutlaatuisia haasteita, koska tekoälyn lähdöt voivat vaihdella ajojen välillä, jopa identtisillä syötteillä. Tämä ei-deterministinen käyttäytyminen vaatii erityisiä testausmenetelmiä. Tässä oppaassa kerrotaan, miten voit vahvistaa tekoälykomponentteja sovelluksissasi Power Platform tehokkaasti.

Ei-determinististen tuotosten ymmärtäminen

Perinteinen testaus perustuu deterministisiin syötteisiin, jotka tuottavat johdonmukaisia tuloksia. Tekoälyjärjestelmät tuottavat kuitenkin usein joka kerta hieman erilaisia tuloksia seuraavista syistä:

  • Mallin lämpötila-asetukset ja näytteenottomenetelmät
  • Mallien eri versioiden valitseminen
  • Pieniä eroja luonnollisen kielen käsittelyssä
  • Luotettavuuspisteet, jotka vaihtelevat normaaleilla alueilla
  • Kontekstisidonnainen päättely, joka voi kulkea eri polkuja

Strategiat ei-deterministisen tekoälyn testaamiseen

Power Apps Test Engine tarjoaa useita strategioita tekoälyllä toimivien komponenttien tehokkaaseen testaamiseen:

Käytä Preview.AIExecutePrompt-funktiota

Preview.AIExecutePrompt-toiminto mahdollistaa tekoälykehotteiden hallitun suorittamisen testeissäsi. Seuraavassa esimerkissä näytetään, miten sitä käytetään:

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

Tämän lähestymistavan avulla voit:

  • Suorita kehotteet ohjatuilla syötteillä
  • Jäsenneltyjen vastausten jäsentäminen ja vahvistaminen
  • Vertaa tuloksia odotettuihin arvoihin

Ota käyttöön toleranssiin perustuva validointi

Sen sijaan, että odottaisit tarkkoja vastaavuuksia, varmista, että tuotokset täyttävät kriteerit hyväksyttävien raja-arvojen sisällä. Seuraava koodi on esimample:

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

Testaa ydintoimintoja tarkkojen tulosteiden sijaan

Keskity testaamaan sen vahvistamiseen, että tekoälykomponentti täyttää olennaisen tarkoituksensa, kuten seuraavassa esimerkissä näkyy:

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

Käytä rakenteellista validointia monimutkaisissa tuotoksissa

Jos kyseessä on monimutkaiset tekoälyvastaukset, vahvista vastausrakenne tietyn sisällön sijaan, kuten seuraavassa esimerkissä näkyy:

// 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.AIExecutePromptin käyttäminen

Test Engine tarjoaa Preview.AIExecutePrompt-funktion erityisesti tekoälyn vuorovaikutusten testaamiseen.

Toiminnon allekirjoitus

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

Parametrit

  • PromptName: Käytettävän kehotemallin nimi
  • PromptContext: Kehotteen kontekstitiedot, jotka sisältävät yleensä seuraavat:
    • Konteksti tai järjestelmäviesti
    • Kysymykset tai käyttäjän syötteet
    • Mallin muut parametrit

Palautusarvo

Tietue, joka sisältää:

  • Teksti: Raaka vastausteksti
  • Muut ominaisuudet kehotemallista ja mallista riippuen

Toiminnon käyttöönotto

Jos haluat käyttää tätä toimintoa, ota tekoälyfunktiomoduuli käyttöön testiasetuksissasi:

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

Esimerkki: Asenneanalyysikomponentin testaaminen

Seuraavassa esimerkissä testataan tekoälypohjaista asenneanalyysiominaisuutta:

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

Esimerkki: Luokituksen arvioinnin tekoäly

Seuraavassa esimerkissä näytetään tekoälyllä toimivan luokitusjärjestelmän testaaminen 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}
  ))

Voit tutustua täydelliseen toteutukseen tekoälykehotemallissa.

Tekoälykomponenttien testauksen parhaat käytännöt

Tehokkaiden testien luominen tekoälyllä toimiville komponenteille:

  • Määritä hyväksyttävät alueet numeeristen tulosteiden tarkkojen arvojen sijaan
  • Luo suojakaiteet varmistaaksesi, että lähdöt täyttävät rakenteelliset vaatimukset
  • Testaa erilaisilla syötteillä, mukaan lukien reunatapaukset ja reunaehdot
  • Sisällytä negatiiviset testitapaukset varmistaaksesi, että tekoäly käsittelee virheelliset syötteet asianmukaisesti
  • Segmentoi testit toiminnallisuuden mukaan tietyn sisällön sijaan
  • Käytä asianmukaisia toleransseja komponentin kriittisyyden perusteella

Tekoälytestauksen yleiset mallit

Seuraavat esimerkit havainnollistavat yleisiä lähestymistapoja tekoälypohjaisten ominaisuuksien Power Platform testaamiseen sovelluksissa. Näiden mallien avulla voit vahvistaa sisällön luokituksen, reunaehdot ja muut skenaariot, joissa tekoälyn tulokset voivat vaihdella.

Sisällön luokittelun testaus

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

Rajojen testaus

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

Lisätietoja Power Fx testifunktioista
Tutustu tekoälyavusteiseen testien luomiseen
Mallin kontekstiprotokollan ymmärtäminen
Selaa Test Engine -malliluetteloa