Megosztás:


Nem determinisztikus mesterséges intelligencia tesztelése ( Power Apps előzetes verzió)

Feljegyzés

Az előzetes funkciókat nem célszerű termelési környezetben használni, és előfordulhat, hogy korlátozott funkcionalitással rendelkeznek. Ezek a funkciók a hivatalos kiadás előtt érhetők el, hogy az ügyfelek korán megismerkedhessenek velük, és visszajelzést adhassanak róluk.

A mesterséges intelligenciával működő alkalmazások tesztelése egyedi kihívásokat jelent, mivel az AI-kimenetek a futtatások között változhatnak, még azonos bemenetek esetén is. Ez a nem determinisztikus viselkedés speciális tesztelési megközelítéseket igényel. Ez az útmutató bemutatja, hogyan ellenőrizheti hatékonyan az AI-összetevőket az Power Platform alkalmazásokban.

A nem determinisztikus kimenetek megértése

A hagyományos tesztelés determinisztikus bemenetekre támaszkodik, amelyek konzisztens kimeneteket eredményeznek. Az AI-rendszerek azonban gyakran minden alkalommal kissé eltérő eredményeket produkálnak a következők miatt:

  • A modell hőmérséklet-beállításai és mintavételi módszerei
  • A modellek különböző verzióinak kiválasztása
  • Kisebb eltérések a természetes nyelvi feldolgozásban
  • A normál tartományon belül ingadozó megbízhatósági pontszámok
  • Kontextusfüggő érvelés, amely különböző utakat járhat

A nem determinisztikus mesterséges intelligencia tesztelésének stratégiái

Power Apps A Test Engine számos stratégiát kínál az AI-alapú alkatrészek hatékony tesztelésére:

A Preview.AIExecutePrompt függvény használata

A Preview.AIExecutePrompt függvény lehetővé teszi az AI-kérések ellenőrzött végrehajtását a teszteken belül. Az alábbi példa bemutatja, hogyan kell használni:

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

Ez a megközelítés a következőket teszi lehetővé:

  • Parancssorok végrehajtása ellenőrzött bemenetekkel
  • Strukturált válaszok elemzése és érvényesítése
  • Az eredmények összehasonlítása a várt értékekkel

Tűrésalapú ellenőrzés megvalósítása

Ahelyett, hogy pontos egyezéseket várna, ellenőrizze, hogy a kimenetek megfelelnek-e az elfogadható küszöbértékeken belüli feltételeknek. Az alábbi kód egy példa:

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

Tesztelje az alapvető funkciókat a pontos kimenetek helyett

Összpontosítson annak ellenőrzésére, hogy az AI-összetevő teljesíti-e alapvető célját, ahogy az alábbi példában látható:

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

Strukturális validálás használata összetett kimenetekhez

Összetett AI-válaszok esetén ellenőrizze a válaszstruktúrát a konkrét tartalom helyett, ahogy az alábbi példában látható:

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

A Preview.AIExecutePrompt használata

A Test Engine kifejezetten az AI-interakciók tesztelésére biztosítja a Preview.AIExecutePrompt függvényt .

Függvény aláírása

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

Paraméterek

  • PromptName: A használni kívánt parancssorsablon neve
  • PromptContext: A parancssor környezeti adatai, amelyek általában a következőket tartalmazzák:
    • Környezet vagy rendszerüzenet
    • Kérdések vagy felhasználói bevitel
    • A modell egyéb paraméterei

Visszaküldés értéke

A következőket tartalmazó rekord:

  • Szöveg: A nyers válaszszöveg
  • Egyéb tulajdonságok a promptsablontól és a modelltől függően

A funkció engedélyezése

A funkció használatához engedélyezze az AI-függvények modult a tesztbeállításokban:

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

Példa: Hangulatelemzési összetevő tesztelése

Az alábbi példa egy mesterséges intelligencia által vezérelt hangulatelemzési funkció tesztelését mutatja be:

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

Példa: Értékelési AI értékelése

Az alábbi példa egy AI-alapú minősítési rendszer tesztelését Preview.AIExecutePrompt mutatja be:

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

A teljes implementációt az AI-kérés mintában fedezheti fel.

Ajánlott eljárások az AI-összetevők teszteléséhez

Hatékony tesztek létrehozása AI-alapú összetevőkhöz:

  • Elfogadható tartományok meghatározása a numerikus kimenetek pontos értékei helyett
  • Védőkorlátok létrehozása annak ellenőrzésére, hogy a kimenetek megfelelnek-e a szerkezeti követelményeknek
  • Tesztelés különböző bemenetekkel, beleértve a peremeseteket és a peremfeltételeket
  • Negatív tesztesetek szerepeltetése annak biztosítása érdekében, hogy az AI megfelelően kezelje az érvénytelen bemeneteket
  • A tesztek szegmentálása funkcionalitás szerint, nem pedig konkrét tartalom szerint
  • Használjon megfelelő tűréseket az alkatrész kritikussága alapján

Az AI-tesztelés gyakori mintái

Az alábbi példák az AI-alapú funkciók alkalmazások tesztelésének Power Platform gyakori módszereit mutatják be. Ezek a minták segítenek a tartalombesorolás, a peremfeltételek és más olyan forgatókönyvek ellenőrzésében, amelyekben az AI-kimenetek eltérőek lehetnek.

Tartalombesorolási tesztelés

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

Határvizsgálat

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

Tudnivalók a Power Fx tesztfüggvényekről
A mesterséges intelligenciával támogatott tesztkészítés felfedezése
A modellkörnyezet protokolljának ismertetése
Tallózás a tesztmotor-minták katalógusában