Compartir por


Probas de IA non determinista en Power Apps (vista previa)

Nota

As funcionalidades de vista previa non se deseñaron para uso de produción e poden ter funcionalidade restrinxida. Estas funcionalidades están dispoñibles antes da versión oficial para que os clientes poidan obter acceso a elas rápido e fornecer comentarios.

Probar aplicacións baseadas en IA presenta desafíos únicos porque os resultados da IA poden variar entre execucións, mesmo con entradas idénticas. Este comportamento non determinista require enfoques de proba especiais. Esta guía explica como validar os compoñentes de IA nas túas aplicacións de xeito eficaz. Power Platform

Comprender as saídas non deterministas

As probas tradicionais baséanse en entradas deterministas que producen saídas consistentes. Non obstante, os sistemas de IA adoitan producir resultados lixeiramente diferentes cada vez debido a:

  • Axustes de temperatura do modelo e métodos de mostraxe
  • Selección de diferentes versións de modelos
  • Variacións menores no procesamento da linguaxe natural
  • Puntuacións de confianza que flutúan dentro dos rangos normais
  • Razoamento dependente do contexto que pode tomar diferentes camiños

Estratexias para probar a IA non determinista

Power Apps Test Engine ofrece varias estratexias para probar eficazmente os compoñentes baseados en IA:

Usar a función Preview.AIExecutePrompt

A función Preview.AIExecutePrompt permite a execución controlada de solicitudes de IA dentro das túas probas. O seguinte exemplo amosa como usalo:

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

Esta estratexia permíteche:

  • Executar solicitudes con entradas controladas
  • Analizar e validar respostas estruturadas
  • Comparar os resultados cos valores esperados

Implementar a validación baseada na tolerancia

En lugar de esperar coincidencias exactas, verifica que as saídas cumpran os criterios dentro dos limiares aceptables. O seguinte código é un exemplo:

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

Probar a funcionalidade principal en lugar de resultados exactos

Céntrate nas probas para validar que o compoñente de IA cumpre o seu propósito esencial, como se mostra no seguinte exemplo:

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

Usar a validación estrutural para saídas complexas

Para respostas complexas de IA, valida a estrutura da resposta en lugar do contido específico, como se mostra no seguinte exemplo:

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

Usando Preview.AIExecutePrompt

Test Engine fornece a función Preview.AIExecutePrompt especificamente para probar as interaccións da IA.

Sinatura da función

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

Parámetros

  • PromptName: O nome do modelo de solicitude que se vai usar
  • PromptContext: Datos de contexto para a solicitude, que normalmente conteñen:
    • Contexto ou mensaxe do sistema
    • Preguntas ou entradas do usuario
    • Calquera outro parámetro para o modelo

Valor devolto

Un rexistro que contén:

  • Texto: O texto da resposta sen procesar
  • Outras propiedades dependendo do modelo e modelo de solicitude

Activación da función

Para usar esta función, activa o módulo de funcións de IA na configuración de probas:

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

Exemplo: Proba dun compoñente de análise de sentimentos

O seguinte exemplo demostra a proba dunha funcionalidade de análise de sentimentos con tecnoloxía de IA:

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

Exemplo: IA de avaliación de clasificación

O seguinte exemplo demostra o uso de Preview.AIExecutePrompt para probar un sistema de clasificación baseado en IA:

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

Podes explorar unha implementación completa no exemplo de solicitude de IA.

Boas prácticas para as probas de compoñentes de IA

Para crear probas eficaces para compoñentes con tecnoloxía de IA:

  • Definir intervalos aceptables en lugar de valores exactos para as saídas numéricas
  • Crear varandas de seguridade para verificar que as saídas cumpran os requisitos estruturais
  • Proba con diversas entradas incluíndo casos límite e condicións de contorno
  • Incluír casos de proba negativos para garantir que a IA xestione as entradas non válidas de xeito axeitado
  • Segmenta as túas probas por funcionalidade en lugar de contido específico
  • Empregar tolerancias axeitadas en función da criticidade do compoñente

Patróns comúns para probas de IA

Os seguintes exemplos ilustran enfoques habituais para probar funcionalidades baseadas en IA en aplicacións. Power Platform Estes patróns axúdanche a validar a clasificación de contido, as condicións límite e outros escenarios nos que as saídas da IA poden variar.

Probas de clasificación de contido

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

Probas de límites

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

Máis información sobre as funcións de proba Power Fx
Explora a creación de probas asistida por IA
Comprender o protocolo de contexto do modelo
Explorar o catálogo de mostras do motor de probas