Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Anmerkung
Funktionen in der Vorschauversion sind nicht für den Produktionseinsatz gedacht und können eine eingeschränkte Funktionalität aufweisen. Diese Funktionen stehen vor dem offiziellen Release zur Verfügung, damit Kunden früher Zugriff darauf erhalten und Feedback geben können.
Das Testen von KI-gestützten Anwendungen bringt besondere Herausforderungen mit sich, da die KI-Ausgaben zwischen den Ausführungen variieren können, selbst bei identischen Eingaben. Dieses nichtdeterministische Verhalten erfordert spezielle Testansätze. In diesem Leitfaden wird erläutert, wie Sie KI-Komponenten in Ihren Power Platform-Anwendungen effektiv validieren.
Grundlegendes zu nichtdeterministischen Ausgaben
Herkömmliche Tests beruhen auf deterministischen Eingaben, die konsistente Ergebnisse liefern. KI-Systeme liefern jedoch oft jedes Mal leicht unterschiedliche Ergebnisse, und zwar aus folgenden Gründen:
- Modelltemperatureinstellungen und Samplingmethoden
- Auswahl verschiedener Modellversionen
- Geringfügige Abweichungen bei der Verarbeitung natürlicher Sprache
- Konfidenzwerte, die innerhalb normaler Bereiche schwanken
- Kontextabhängiges Denken, das unterschiedliche Wege einschlagen kann
Strategien zum Testen nichtdeterministischer KI
Power Apps Test Engine bietet mehrere Strategien zum effektiven Testen von KI-gestützten Komponenten:
Verwendung der Funktion Preview.AIExecutePrompt
Die Funktion Preview.AIExecutePrompt ermöglicht die kontrollierte Ausführung von KI-Eingabeaufforderungen innerhalb Ihrer Tests. Das folgende Beispiel veranschaulicht die Vorgehensweise:
Response: ParseJSON(
Preview.AIExecutePrompt("CustomPrompt",
{
Context: "You are a helpful assistant.",
Question: "What is the capital of France?"
}).Text)
Dieser Ansatz ermöglicht Ihnen Folgendes:
- Eingabeaufforderungen mit kontrollierten Eingaben ausführen
- Strukturierte Antworten analysieren und validieren
- die tatsächlichen Ergebnisse mit den erwarteten Werten zu vergleichen
Implementieren einer toleranzbasierten Validierung
Anstatt genaue Übereinstimmungen zu erwarten, sollten Sie überprüfen, ob die Ausgaben die Kriterien innerhalb akzeptabler Schwellenwerte erfüllen. Im Folgenden sehen Sie einen Beispielcode:
// Validate that the sentiment score is within appropriate range
Assert(Response.SentimentScore >= 0.7, "Sentiment score should be positive")
Testen der Kernfunktionalität anstelle exakter Ausgaben
Konzentrieren Sie sich bei den Tests darauf, zu überprüfen, ob die KI-Komponente ihren wesentlichen Zweck erfüllt, wie im folgenden Beispiel gezeigt:
// 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"
)
Strukturelle Validierung für komplexe Ausgaben verwenden
Validieren Sie bei komplexen KI-Antworten die Antwortstruktur und nicht den spezifischen Inhalt, wie im folgenden Beispiel gezeigt:
// 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")
Verwenden von Preview.AIExecutePrompt
Test Engine bietet die Funktion Preview.AIExecutePrompt speziell zum Testen von KI-Interaktionen an.
Signatur der Funktion
Preview.AIExecutePrompt(
PromptName: Text,
PromptContext: Record
): Record
Parameter
- PromptName: Der Name der zu verwendenden Eingabeaufforderungsvorlage
-
PromptContext: Kontextdaten für die Eingabeaufforderung, die in der Regel Folgendes enthalten:
- Kontext oder Systemnachricht
- Fragen oder Benutzereingaben
- Alle anderen Parameter für das Modell
Zurückgegebener Wert
Ein Datensatz, der Folgendes enthält:
- Text: Der unformatierte Antworttext
- Andere Eigenschaften je nach Eingabeaufforderungsvorlage und Modell
Aktivieren der Funktion
Um diese Funktion zu verwenden, aktivieren Sie das KI-Funktionsmodul in Ihren Testeinstellungen:
testSettings:
extensionModules:
enable: true
parameters:
enableAIFunctions: true
Beispiel: Testen einer Stimmungsanalysekomponente
Das folgende Beispiel veranschaulicht das Testen einer KI-gestützten Stimmungsanalysefunktion:
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)
})
Beispiel: Auswertung mit KI bewerten
Das folgende Beispiel veranschaulicht die Verwendung von Preview.AIExecutePrompt zum Testen eines KI-gestützten Bewertungssystems:
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}
))
Eine vollständige Implementierung können Sie sich im Eingabeaufforderungsbeispiel anschauen.
Bewährte Methoden für das Testen von KI-Komponenten
So erstellen Sie effektive Tests für KI-gestützte Komponenten:
- Definieren Sie akzeptable Bereiche anstelle von exakten Werten für numerische Ausgaben.
- Erstellen Sie Leitplanken, um zu überprüfen, ob die Ausgaben den strukturellen Anforderungen entsprechen.
- Testen Sie mit verschiedenen Eingaben, einschließlich Grenzfällen und Grenzbedingungen.
- Schließen Sie negative Testfälle ein, um sicherzustellen, dass die KI ungültige Eingaben angemessen verarbeitet
- Segmentieren Sie Ihre Tests nach Funktionalität und nicht nach bestimmten Inhalten.
- Verwenden Sie geeignete Toleranzen, die auf der Kritikalität der Komponente basieren.
Gängige Muster für KI-Tests
Die folgenden Beispiele veranschaulichen gängige Ansätze zum Testen von KI-gestützten Funktionen in Power Platform-Anwendungen. Anhand dieser Muster können Sie die Inhaltsklassifizierung, Grenzbedingungen und andere Szenarien validieren, in denen die KI-Ausgaben variieren können.
Testen der Inhaltsklassifizierung
// 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"
))
Grenzwertprüfung
// 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"
))
Ähnliche Artikel
Weitere Informationen zu Power Fx-Funktionen
KI-gestützte Testerstellung entdecken
Das Modellkontextprotokoll verstehen
Den Test Engine-Beispielkatalog durchsuchen