Partajați prin


Testarea inteligenței artificiale nedeterministe în Power Apps (previzualizare)

Notă

Caracteristicile în regim de previzualizare nu sunt destinate utilizării în producție și pot avea funcționalitate restricționată. Aceste caracteristici sunt disponibile înainte de lansarea oficială, astfel încât clienții să poată obține acces din timp și să poată oferi feedback.

Testarea aplicațiilor bazate pe inteligență artificială introduce provocări unice, deoarece rezultatele inteligenței artificiale pot varia între rulări, chiar și cu intrări identice. Acest comportament nedeterminist necesită abordări speciale de testare. Acest ghid explică cum să validați eficient componentele IA din aplicațiile dumneavoastră. Power Platform

Înțelegerea ieșirilor nedeterministe

Testarea tradițională se bazează pe intrări deterministe care produc ieșiri consistente. Cu toate acestea, sistemele de inteligență artificială produc adesea rezultate ușor diferite de fiecare dată din cauza:

  • Setările de temperatură ale modelului și metodele de eșantionare
  • Selectarea diferitelor versiuni de modele
  • Variații minore în procesarea limbajului natural
  • Scoruri de încredere care fluctuează în limite normale
  • Raționament dependent de context care ar putea lua căi diferite

Strategii pentru testarea inteligenței artificiale nedeterministe

Power Apps Test Engine oferă mai multe strategii pentru testarea eficientă a componentelor bazate pe inteligență artificială:

Utilizați funcția Preview.AIExecutePrompt

Funcția *Preview.AIExecutePrompt* permite executarea controlată a solicitărilor AI în cadrul testelor. ... Următorul exemplu demonstrează cum se utilizează:

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

Această abordare vă permite să:

  • Executarea prompturilor cu intrări controlate
  • Analizați și validați răspunsurile structurate
  • Comparați rezultatele cu valorile așteptate

Implementați validarea bazată pe toleranță

În loc să așteptați potriviri exacte, verificați dacă rezultatele îndeplinesc criteriile în limitele pragurilor acceptabile. Următorul cod este un exemplu:

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

Testați funcționalitatea de bază mai degrabă decât rezultatele exacte

Concentrați testele pe validarea faptului că componenta IA își îndeplinește scopul esențial, așa cum se arată în exemplul următor:

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

Utilizați validarea structurală pentru ieșiri complexe

Pentru răspunsuri complexe bazate pe inteligență artificială, validați structura răspunsului mai degrabă decât conținutul specific, așa cum se arată în exemplul următor:

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

Utilizarea Preview.AIExecutePrompt

Test Engine oferă funcția Preview.AIExecutePrompt specială pentru testarea interacțiunilor AI.

Semnătura funcției

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

Parametri

  • PromptName: Numele șablonului de solicitare care va fi utilizat
  • PromptContext: Date contextuale pentru prompt, care conțin de obicei:
    • Context sau mesaj de sistem
    • Întrebări sau intrări ale utilizatorilor
    • Orice alți parametri pentru model

Valoare returnată

O înregistrare care conține:

  • Text: Textul brut al răspunsului
  • Alte proprietăți în funcție de șablonul și modelul promptului

Activarea funcției

Pentru a utiliza această funcție, activați modulul funcțiilor AI în setările de testare:

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

Exemplu: Testarea unei componente de analiză a sentimentelor

Următorul exemplu demonstrează testarea unei funcții de analiză a sentimentelor bazate pe inteligență artificială:

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

Exemplu: Evaluare prin inteligență artificială (IA)

Următorul exemplu demonstrează utilizarea Preview.AIExecutePrompt pentru a testa un sistem de evaluare bazat pe inteligență artificială:

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

Puteți explora o implementare completă în exemplu de prompturi AI.

Cele mai bune practici pentru testarea componentelor IA

Pentru a crea teste eficiente pentru componente bazate pe inteligență artificială:

  • Definiți intervale acceptabile în loc de valori exacte pentru ieșirile numerice
  • Creați balustrade de protecție pentru a verifica dacă rezultatele îndeplinesc cerințele structurale
  • Testare cu diverse intrări, inclusiv cazuri limită și condiții limită
  • Includeți cazuri de testare negative pentru a vă asigura că inteligența artificială gestionează corect intrările nevalide
  • Segmentați-vă testele după funcționalitate, mai degrabă decât după conținut specific
  • Utilizați toleranțe adecvate în funcție de importanța componentei

Modele comune pentru testarea inteligenței artificiale

Următoarele exemple ilustrează abordări comune pentru testarea funcțiilor bazate pe inteligență artificială în aplicații. Power Platform Aceste modele vă ajută să validați clasificarea conținutului, condițiile limită și alte scenarii în care rezultatele inteligenței artificiale ar putea varia.

Testarea clasificării conținutului

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

Testarea la limită

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

Aflați despre funcțiile de testare Power Fx
Explorează crearea de teste asistată de inteligență artificială
Înțelegerea protocolului de context al modelului
Răsfoiți catalogul de mostre Test Engine