09-04-01 — Evaluations GA: evaluators, monitoramento contínuo, Azure Monitor
TL;DR
O sistema de Evaluations do AI Foundry (GA) permite medir a qualidade das respostas do seu agente de forma sistemática — não apenas "parece bom". Inclui evaluators prontos (groundedness, relevance, coherence, fluency, safety) e evaluators customizados. Integra com Azure Monitor para alertas e dashboards de qualidade em produção. Essencial para SLA de qualidade em contratos com clientes enterprise.
Por que Evaluations importa
Sem avaliação sistemática, você descobre problemas de qualidade quando o cliente reclama. Com Evaluations, você detecta regressões antes do deploy e monitora qualidade em produção continuamente.
Evaluators built-in
| Evaluator | O que mede | Score |
|---|---|---|
| Groundedness | Resposta está fundamentada nos documentos de contexto? (crítico para RAG) | 1–5 |
| Relevance | Resposta responde à pergunta feita? | 1–5 |
| Coherence | Resposta é coerente e bem estruturada? | 1–5 |
| Fluency | Linguagem fluida, sem erros gramaticais? | 1–5 |
| Similarity | Semelhança com resposta de referência (ground truth) | 0–1 |
| F1 Score | Precisão/recall em relação ao ground truth | 0–1 |
| Violence/Hate/Sexual | Detecção de conteúdo nocivo nas respostas | 0–7 |
Executando evaluation programaticamente
from azure.ai.evaluation import (
evaluate,
GroundednessEvaluator,
RelevanceEvaluator,
CoherenceEvaluator
)
from azure.identity import DefaultAzureCredential
import os
# Configurar modelo para uso como juiz
model_config = {
"azure_endpoint": os.environ["AZURE_AI_FOUNDRY_ENDPOINT"],
"azure_deployment": "gpt-4o",
"api_version": "2025-01-01-preview",
"credential": DefaultAzureCredential()
}
# Dataset de avaliação: lista de {"query", "response", "context"}
dataset = [
{
"query": "Qual o prazo de entrega do projeto?",
"response": "O prazo é 30 dias corridos conforme contrato.",
"context": "Cláusula 5.1: prazo de entrega de 30 dias corridos."
},
# ... mais exemplos
]
# Executar avaliação
results = evaluate(
data=dataset,
evaluators={
"groundedness": GroundednessEvaluator(model_config=model_config),
"relevance": RelevanceEvaluator(model_config=model_config),
"coherence": CoherenceEvaluator(model_config=model_config)
},
output_path="./eval_results.json"
)
print(f"Groundedness médio: {results['metrics']['groundedness.groundedness']:.2f}")
print(f"Relevance médio: {results['metrics']['relevance.relevance']:.2f}")
Evaluator customizado
Para métricas de negócio específicas (ex: "resposta segue o tom corporativo da Impar?"), crie evaluators customizados baseados em prompt:
from azure.ai.evaluation import PromptBasedEvaluator
tom_corporativo_evaluator = PromptBasedEvaluator(
prompt_template="""
Avalie se a resposta abaixo segue o tom corporativo da Impar:
profissional, direto, em português, sem informalidades.
Pergunta: {{query}}
Resposta: {{response}}
Score (1-5) e justificativa breve:
""",
model_config=model_config
)
Monitoramento contínuo em produção
Avaliação pontual é o pré-deploy. Monitoramento contínuo é o pós-deploy — amostragem automática de conversas reais e alerta quando qualidade cai:
from azure.ai.projects import AIProjectClient
from azure.ai.projects.models import ContinuousMonitoringConfig
client = AIProjectClient.from_connection_string(
os.environ["AZURE_AI_FOUNDRY_CONNECTION_STRING"],
DefaultAzureCredential()
)
# Configurar monitoramento contínuo no projeto
monitor_config = ContinuousMonitoringConfig(
sampling_rate=0.10, # 10% das conversas são avaliadas
evaluators=["groundedness", "relevance", "violence"],
alert_thresholds={
"groundedness": 3.0, # alerta se média cair abaixo de 3
"violence": 1.0 # alerta em qualquer detecção
},
azure_monitor_workspace=os.environ["AZURE_MONITOR_WORKSPACE_ID"]
)
Integração com Azure Monitor
Os resultados de evaluation são enviados como custom metrics ao Azure Monitor. Você pode criar dashboards no Azure Monitor Workbooks e alertas via Action Groups (email, Teams, PagerDuty):
- Metric:
ai_foundry/evaluation/groundedness - Metric:
ai_foundry/evaluation/relevance - Alertar quando: groundedness médio (rolling 24h) < 3.5
- Ação: email para equipe + ticket automático no Jira