Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Notitie
Preview-functies zijn niet bedoeld voor productiegebruik en bieden mogelijk beperkte functionaliteit. Deze functies zijn beschikbaar voorafgaand aan een officiële release, zodat klanten vroeg toegang kunnen krijgen en feedback kunnen geven.
Het testen van AI-gestuurde applicaties brengt unieke uitdagingen met zich mee, omdat de AI-uitvoer tussen runs kan variëren, zelfs bij identieke invoer. Dit niet-deterministische gedrag vereist speciale testbenaderingen. In deze handleiding wordt uitgelegd hoe u AI-componenten in uw applicaties effectief kunt valideren. Power Platform
Inzicht in niet-deterministische uitkomsten
Traditionele tests zijn afhankelijk van deterministische invoer, die consistente uitvoer oplevert. AI-systemen produceren echter vaak telkens iets andere resultaten vanwege:
- Modeltemperatuurinstellingen en bemonsteringsmethoden
- Verschillende versies van modellen selecteren
- Kleine variaties in de verwerking van natuurlijke taal
- Vertrouwenscores die binnen normale grenzen fluctueren
- Contextafhankelijke redenering die verschillende paden kan bewandelen
Strategieën voor het testen van niet-deterministische AI
Power Apps Test Engine biedt verschillende strategieën voor het effectief testen van AI-gestuurde componenten:
Gebruik de Preview.AIExecutePrompt-functie
Met de functie Preview.AIExecutePrompt kunt u AI-prompts gecontroleerd uitvoeren in uw tests. Het volgende voorbeeld laat zien hoe u dit kunt gebruiken:
Response: ParseJSON(
Preview.AIExecutePrompt("CustomPrompt",
{
Context: "You are a helpful assistant.",
Question: "What is the capital of France?"
}).Text)
Met deze aanpak kunt u:
- Voer prompts uit met gecontroleerde invoer
- Gestructureerde reacties parseren en valideren
- Vergelijk resultaten met verwachte waarden
Implementeer tolerantiegebaseerde validatie
In plaats van te verwachten dat de resultaten exact overeenkomen, controleert u of de resultaten voldoen aan de criteria binnen acceptabele drempelwaarden. De volgende code is een voorbeeld:
// Validate that the sentiment score is within appropriate range
Assert(Response.SentimentScore >= 0.7, "Sentiment score should be positive")
Test de kernfunctionaliteit in plaats van de exacte uitkomsten
De nadruk ligt op het valideren dat het AI-onderdeel zijn essentiële doel vervult, zoals in het volgende voorbeeld wordt getoond:
// 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"
)
Gebruik structurele validatie voor complexe uitkomsten
Voor complexe AI-reacties valideert u de reactiestructuur in plaats van de specifieke inhoud, zoals in het volgende voorbeeld wordt getoond:
// 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.AIExecutePrompt gebruiken
Test Engine biedt de Preview.AIExecutePrompt-functie speciaal voor het testen van AI-interacties.
Functiehandtekening
Preview.AIExecutePrompt(
PromptName: Text,
PromptContext: Record
): Record
Parameters
- PromptName: De naam van de promptsjabloon die moet worden gebruikt
-
PromptContext: Contextgegevens voor de prompt, meestal bevattende:
- Context- of systeembericht
- Vragen of gebruikersinvoer
- Alle andere parameters voor het model
Retourwaarde
Een record met daarin:
- Tekst: De ruwe antwoordtekst
- Andere eigenschappen afhankelijk van de promptsjabloon en het model
De functie inschakelen
Om deze functie te gebruiken, moet u de module AI-functies in uw testinstellingen inschakelen:
testSettings:
extensionModules:
enable: true
parameters:
enableAIFunctions: true
Voorbeeld: een sentimentanalysecomponent testen
Het volgende voorbeeld laat zien hoe u een op AI gebaseerde sentimentanalysefunctie kunt testen:
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)
})
Voorbeeld: Beoordelingsevaluatie AI
Het volgende voorbeeld laat zien hoe u een op AI gebaseerd beoordelingssysteem kunt testen: 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}
))
U kunt een volledige implementatie bekijken in het AI Prompt-voorbeeld.
Best practices voor het testen van AI-componenten
Om effectieve tests voor AI-gestuurde componenten te creëren:
- Definieer acceptabele bereiken in plaats van exacte waarden voor numerieke uitkomsten
- Creëer vangrails om te verifiëren of de uitkomsten voldoen aan de structurele vereisten.
- Test met diverse invoer, inclusief randgevallen en randvoorwaarden
- Neem negatieve testcases op om ervoor te zorgen dat de AI ongeldige invoer op de juiste manier verwerkt.
- Segmenteer uw tests op functionaliteit in plaats van op specifieke inhoud.
- gebruik passende toleranties op basis van de criticaliteit van het onderdeel.
Veelvoorkomende patronen voor AI-testen
De volgende voorbeelden illustreren veelvoorkomende benaderingen voor het testen van AI-gestuurde functies in Power Platform toepassingen. Met deze patronen kunt u inhoudsclassificatie, randvoorwaarden en andere scenario's valideren waarin AI-uitvoer kan variëren.
Testen van inhoudsclassificatie
// 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"
))
Grens testen
// 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"
))
Verwante artikelen
Meer informatie over testfuncties Power Fx
Ontdek AI-ondersteunde testontwikkeling
Begrijp het Model Context Protocol
Blader door de catalogus met Test Engine-voorbeelden