import { classificarPergunta } from "#services/atendimentosQueryService.js"; const CASES = [ { query: "cliente pedindo segunda via de boleto", esperado: true, tipo: "positivo" }, { query: "problema de internet lenta", esperado: true, tipo: "positivo" }, { query: "cancelamento de contrato", esperado: true, tipo: "positivo" }, { query: "cliente reclamando que a internet caiu de novo", esperado: true, tipo: "positivo" }, { query: "solicitação de mudança de endereço de instalação", esperado: true, tipo: "positivo" }, { query: "cliente questionando cobrança duplicada na fatura", esperado: true, tipo: "positivo" }, { query: "pedido de upgrade de plano de internet", esperado: true, tipo: "positivo" }, { query: "me conta algo engraçado que um cliente falou", esperado: true, tipo: "quase-armadilha" }, { query: "qual foi a reclamação mais estranha que já recebemos", esperado: true, tipo: "quase-armadilha" }, { query: "quantos atendimentos tivemos essa semana", esperado: true, tipo: "quase-armadilha" }, { query: "o que aconteceu no último atendimento", esperado: true, tipo: "quase-armadilha" }, { query: "vocês têm histórico de conversas com clientes?", esperado: true, tipo: "quase-armadilha" }, { query: "previsão do tempo para amanhã em Paris", esperado: false, tipo: "negativo" }, { query: "receita de bolo de chocolate", esperado: false, tipo: "negativo" }, { query: "quem ganhou o jogo de futebol ontem", esperado: false, tipo: "negativo" }, { query: "qual a capital da Austrália", esperado: false, tipo: "negativo" }, { query: "como treinar para uma maratona", esperado: false, tipo: "negativo" }, { query: "melhores filmes de ficção científica dos anos 80", esperado: false, tipo: "negativo" } ]; async function main() { const rows = []; for (const c of CASES) { const { relacionado } = await classificarPergunta(c.query, []); rows.push({ query: c.query, tipo: c.tipo, esperado: c.esperado, obtido: relacionado, resultado: relacionado === c.esperado ? "OK" : (c.esperado ? "FALSO-NEGATIVO (grave)" : "falso-positivo") }); } console.log("\n=== evalAtendimentosGate ===\n"); console.table(rows); const acertos = rows.filter((r) => r.resultado === "OK").length; const falsosNegativos = rows.filter((r) => r.resultado.startsWith("FALSO-NEGATIVO")); const falsosPositivos = rows.filter((r) => r.resultado === "falso-positivo"); console.log("\n--- resumo ---"); console.log(`acurácia: ${acertos}/${rows.length} (${((acertos / rows.length) * 100).toFixed(0)}%)`); console.log(`falsos-negativos (bloqueou pergunta legítima, ERRO GRAVE): ${falsosNegativos.length}`); if (falsosNegativos.length) console.log(falsosNegativos.map((r) => ` - "${r.query}"`).join("\n")); console.log(`falsos-positivos (deixou passar pergunta fora do tema): ${falsosPositivos.length}`); if (falsosPositivos.length) console.log(falsosPositivos.map((r) => ` - "${r.query}"`).join("\n")); console.log(""); } main() .then(() => process.exit(0)) .catch((err) => { console.error("[evalAtendimentosGate] erro:", err); process.exit(1); });