Merk
Tilgang til denne siden krever autorisasjon. Du kan prøve å logge på eller endre kataloger.
Tilgang til denne siden krever autorisasjon. Du kan prøve å endre kataloger.
Notat
Forhåndsversjonsfunksjonene er ikke ment for produksjonsbruk og kan ha begrenset funksjonalitet. Disse funksjonene er tilgjengelige før en offisiell utgivelse, slik at kunder kan få tidlig tilgang og gi tilbakemeldinger.
Testing av AI-drevne applikasjoner introduserer unike utfordringer fordi AI-utganger kan variere mellom kjøringer, selv med identiske innganger. Denne ikke-deterministiske oppførselen krever spesielle testtilnærminger. Denne veiledningen forklarer hvordan du validerer AI-komponenter i programmene dine Power Platform effektivt.
Forstå ikke-deterministiske utganger
Tradisjonell testing er avhengig av deterministiske inndata som gir konsistente resultater. Imidlertid produserer AI-systemer ofte litt forskjellige resultater hver gang på grunn av:
- Modelltemperaturinnstillinger og prøvetakingsmetoder
- Velge forskjellige versjoner av modeller
- Mindre variasjoner i naturlig språkbehandling
- Konfidensscore som svinger innenfor normale områder
- Kontekstavhengig resonnement som kan ta forskjellige veier
Strategier for testing av ikke-deterministisk AI
Power Apps Test Engine gir flere strategier for effektiv testing av AI-drevne komponenter:
Bruke Preview.AIExecutePrompt-funksjonen
Preview.AIExecutePrompt-funksjonen muliggjør kontrollert kjøring av AI-forespørsler i testene dine. Følgende eksempel viser hvordan du bruker det:
Response: ParseJSON(
Preview.AIExecutePrompt("CustomPrompt",
{
Context: "You are a helpful assistant.",
Question: "What is the capital of France?"
}).Text)
Denne tilnærmingen lar deg:
- Utfør ledetekster med kontrollerte innganger
- Analysere og validere strukturerte svar
- Sammenlign resultater med forventede verdier
Implementere toleransebasert validering
I stedet for å forvente eksakte treff, må du kontrollere at utdataene oppfyller kriteriene innenfor akseptable terskler. Følgende kode er et eksempel:
// Validate that the sentiment score is within appropriate range
Assert(Response.SentimentScore >= 0.7, "Sentiment score should be positive")
Test kjernefunksjonalitet i stedet for eksakte utganger
Fokustester på å validere at AI-komponenten oppfyller sitt essensielle formål som vist i eksemplet nedenfor:
// 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"
)
Bruke strukturell validering for komplekse utdata
For komplekse AI-svar validerer du svarstrukturen i stedet for spesifikt innhold som vist i eksemplet nedenfor:
// 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")
Bruke Preview.AIExecutePrompt
Test Engine tilbyr Preview.AIExecutePrompt-funksjonen spesielt for testing av AI-interaksjoner.
Funksjon signatur
Preview.AIExecutePrompt(
PromptName: Text,
PromptContext: Record
): Record
Parametere
- PromptName: Navnet på ledetekstmalen som skal brukes
-
PromptContext: Kontekstdata for ledeteksten, som vanligvis inneholder:
- Kontekst eller systemmelding
- Spørsmål eller brukerinnspill
- Eventuelle andre parametere for modellen
Returverdi
En post som inneholder:
- Tekst: Den rå svarteksten
- Andre egenskaper avhengig av spørsmålsmal og modell
Aktivere funksjonen
Hvis du vil bruke denne funksjonen, aktiverer du AI-funksjonsmodulen i testinnstillingene:
testSettings:
extensionModules:
enable: true
parameters:
enableAIFunctions: true
Eksempel: Teste en sentimentanalysekomponent
Eksemplet nedenfor viser testing av en AI-drevet sentimentanalysefunksjon:
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)
})
Eksempel: AI for vurderingsevaluering
Følgende eksempel demonstrerer bruk Preview.AIExecutePrompt for å teste et AI-drevet klassifiseringssystem:
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}
))
Du kan utforske en fullstendig implementering i eksemplet påAI Prompt.
Anbefalte fremgangsmåter for testing av AI-komponenter
Slik lager du effektive tester for AI-drevne komponenter:
- Definere akseptable områder i stedet for eksakte verdier for numeriske utdata
- Lag rekkverk for å verifisere at utgangene oppfyller strukturelle krav
- Test med forskjellige innganger , inkludert kanttilfeller og grensebetingelser
- Inkluder negative testtilfeller for å sikre at AI håndterer ugyldige inndata på riktig måte
- Segmenter testene dine etter funksjonalitet i stedet for spesifikt innhold
- Bruk passende toleranser basert på komponentens kritikalitet
Vanlige mønstre for testing av kunstig intelligens
Eksemplene nedenfor illustrerer vanlige tilnærminger for testing av AI-drevne funksjoner i Power Platform programmer. Disse mønstrene hjelper deg med å validere innholdsklassifisering, grensebetingelser og andre scenarioer der AI-utdata kan variere.
Testing av innholdsklassifisering
// 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"
))
Grense testing
// 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"
))
Relaterte artikler
Finn ut mer om Power Fx testfunksjoner
Utforsk AI-assistert testredigering
Forstå modellkontekstprotokollen
Bla gjennom katalogen over prøvemotoreksempler