Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Notatka
Funkcje w wersji zapoznawczej nie są przeznaczone do użytku w środowiskach produkcyjnych i mogą mieć ograniczoną funkcjonalność. Te funkcje są udostępniane przed oficjalnym wydaniem, dzięki czemu klienci mogą szybciej uzyskać do nich dostęp i przekazać opinie na ich temat.
Testowanie aplikacji opartych na sztucznej inteligencji wiąże się z wyjątkowymi wyzwaniami, ponieważ dane wyjściowe sztucznej inteligencji mogą się różnić między przebiegami, nawet przy identycznych danych wejściowych. To niedeterministyczne zachowanie wymaga specjalnych podejść do testowania. W tym przewodniku wyjaśniono, jak skutecznie weryfikować składniki sztucznej inteligencji w Power Platform aplikacjach.
Zrozumienie niedeterministycznych danych wyjściowych
Tradycyjne testowanie opiera się na deterministycznych danych wejściowych dających spójne wyniki. Jednak systemy sztucznej inteligencji często dają za każdym razem nieco inne wyniki ze względu na:
- Modelowanie ustawień temperatury i metod próbkowania
- Wybór różnych wersji modeli
- Drobne różnice w przetwarzaniu języka naturalnego
- Wyniki ufności, które wahają się w normalnych zakresach
- Rozumowanie zależne od kontekstu, które może obierać różne ścieżki
Strategie testowania niedeterministycznej sztucznej inteligencji
Power Apps Test Engine zapewnia kilka strategii skutecznego testowania komponentów opartych na sztucznej inteligencji:
Korzystanie z funkcji Preview.AIExecutePrompt
Funkcja Preview.AIExecutePrompt umożliwia kontrolowane wykonywanie monitów sztucznej inteligencji w testach. W poniższym przykładzie pokazano, jak z niego korzystać:
Response: ParseJSON(
Preview.AIExecutePrompt("CustomPrompt",
{
Context: "You are a helpful assistant.",
Question: "What is the capital of France?"
}).Text)
Takie podejście pozwala na:
- Wykonywanie monitów z kontrolowanymi danymi wejściowymi
- Analizowanie i weryfikowanie ustrukturyzowanych odpowiedzi
- Porównywanie wyników z wartościami oczekiwanymi
Implementowanie walidacji opartej na tolerancji
Zamiast oczekiwać dokładnych dopasowań, sprawdź, czy dane wyjściowe spełniają kryteria w akceptowalnych progach. Poniższy kod jest przykładem:
// Validate that the sentiment score is within appropriate range
Assert(Response.SentimentScore >= 0.7, "Sentiment score should be positive")
Testuj podstawowe funkcje, a nie dokładne dane wyjściowe
Skoncentruj testy na sprawdzaniu, czy komponent sztucznej inteligencji spełnia swój podstawowy cel, jak pokazano w poniższym przykładzie:
// 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"
)
Stosowanie walidacji strukturalnej dla złożonych wyników
W przypadku złożonych odpowiedzi sztucznej inteligencji zweryfikuj strukturę odpowiedzi, a nie określoną zawartość, jak pokazano w poniższym przykładzie:
// 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")
Korzystanie z Preview.AIExecutePrompt
Aparat testowy udostępnia funkcję Preview.AIExecutePrompt przeznaczoną specjalnie do testowania interakcji sztucznej inteligencji.
Podpis funkcji
Preview.AIExecutePrompt(
PromptName: Text,
PromptContext: Record
): Record
Parametry
- PromptName: nazwa szablonu monitu, który ma być używany
-
PromptContext: dane kontekstowe dla monitu, zazwyczaj zawierające:
- Kontekst lub komunikat systemowy
- Pytania lub dane wejściowe użytkownika
- Wszelkie inne parametry dla modelu
Wartość zwracana
Rekord zawierający:
- Tekst: nieprzetworzony tekst odpowiedzi
- Inne właściwości w zależności od szablonu monitu i modelu
Włączanie funkcji
Aby skorzystać z tej funkcji, włącz moduł funkcji AI w ustawieniach testu:
testSettings:
extensionModules:
enable: true
parameters:
enableAIFunctions: true
Przykład: Testowanie składnika analizy tonacji
W poniższym przykładzie przedstawiono testowanie funkcji analizy tonacji opartej na sztucznej inteligencji:
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)
})
Przykład: Sztuczna inteligencja oceniająca
W poniższym przykładzie pokazano, przy użyciu Preview.AIExecutePrompt do testowania systemu oceniania opartego na sztucznej inteligencji:
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}
))
Pełną implementację można zapoznać się z przykładem AI Prompt.
Najlepsze praktyki dotyczące testowania komponentów AI
Aby utworzyć skuteczne testy dla komponentów opartych na sztucznej inteligencji:
- Definiowanie dopuszczalnych zakresów zamiast dokładnych wartości dla danych wyjściowych liczbowych
- Utwórz barierki ochronne, aby sprawdzić, czy dane wyjściowe spełniają wymagania konstrukcyjne
- Testowanie z różnymi danymi wejściowymi, w tym przypadkami brzegowymi i warunkami brzegowymi
- Uwzględnij negatywne przypadki testowe, aby upewnić się, że sztuczna inteligencja prawidłowo obsługuje nieprawidłowe dane wejściowe
- Segmentuj testy według funkcjonalności, a nie konkretnej zawartości
- Stosować odpowiednie tolerancje w oparciu o krytyczność komponentu
Typowe wzorce testowania sztucznej inteligencji
Poniższe przykłady ilustrują typowe podejścia do testowania funkcji opartych na sztucznej inteligencji w Power Platform aplikacjach. Te wzorce ułatwiają weryfikowanie klasyfikacji zawartości, warunków brzegowych i innych scenariuszy, w których dane wyjściowe sztucznej inteligencji mogą się różnić.
Testowanie klasyfikacji treści
// 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"
))
Testowanie graniczne
// 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"
))
Powiązane artykuły
Dowiedz się więcej o Power Fx funkcjach testowych
Dowiedz się więcej o tworzeniu testów wspomaganych sztuczną inteligencją
Omówienie protokołu kontekstu modelu
Przeglądaj katalog przykładów aparatu testowego