intsoft commited on
Commit
df00a54
·
verified ·
1 Parent(s): 7154cbf

Esclarecer limites da avaliação e validar notas vazias

Browse files
Files changed (2) hide show
  1. config.js +1 -1
  2. engine.js +1 -1
config.js CHANGED
@@ -1,6 +1,6 @@
1
  window.COMENTA_CONFIG = {
2
  "title": "Chat interno da equipe",
3
- "description": "Combine a resposta com o colega sem sair da plataforma nem abrir outro aplicativo.",
4
  "limitation": "Simula uma conversa interna apenas na sua aba. Pode acrescentar mensagens manualmente ao histórico; não conecta colegas, não autentica equipe e não serve para conteúdo confidencial.",
5
  "fields": [
6
  {
 
1
  window.COMENTA_CONFIG = {
2
  "title": "Chat interno da equipe",
3
+ "description": "Avaliação funcional: Simula uma conversa interna apenas na sua aba.",
4
  "limitation": "Simula uma conversa interna apenas na sua aba. Pode acrescentar mensagens manualmente ao histórico; não conecta colegas, não autentica equipe e não serve para conteúdo confidencial.",
5
  "fields": [
6
  {
engine.js CHANGED
@@ -72,7 +72,7 @@ function team(message,faq) {
72
  const t=classify(message),r=handoff(message,faq);return {etapas:[{agente:'Triagem por regras',saida:t},{agente:'Consulta da base lexical',saida:faqLookup(message,faq)||'Sem correspondência'},{agente:'Supervisor de segurança',saida:r}],agendamento:/agend|reuniao|horario/.test(norm(message))?'Pedido detectado; agenda não conectada. Nenhuma reserva realizada.':'Não solicitado',execucao:'Orquestrador determinístico. Não usa múltiplos LLMs. Nenhuma ação externa.'};
73
  }
74
  function nps(input) {
75
- const a=text(input,'Notas').split(/[,;\s]+/).filter(Boolean).map(Number);if(a.length>10000||a.some(n=>!Number.isInteger(n)||n<0||n>10))throw Error('Notas devem ser inteiros de 0 a 10. Limite: 10 mil notas.');
76
  const promoters=a.filter(x=>x>=9).length,detractors=a.filter(x=>x<=6).length;return {respostas:a.length,promotores:promoters,neutros:a.length-promoters-detractors,detratores:detractors,nps:Math.round((promoters-detractors)/a.length*10000)/100,formula:'(% notas 9–10) − (% notas 0–6)',pesquisa_sugerida:'De 0 a 10, quanto você recomendaria nosso atendimento?',acao:'Não dispara pesquisas nem importa avaliações reais.'};
77
  }
78
  function internalChat(input,author,message) {
 
72
  const t=classify(message),r=handoff(message,faq);return {etapas:[{agente:'Triagem por regras',saida:t},{agente:'Consulta da base lexical',saida:faqLookup(message,faq)||'Sem correspondência'},{agente:'Supervisor de segurança',saida:r}],agendamento:/agend|reuniao|horario/.test(norm(message))?'Pedido detectado; agenda não conectada. Nenhuma reserva realizada.':'Não solicitado',execucao:'Orquestrador determinístico. Não usa múltiplos LLMs. Nenhuma ação externa.'};
73
  }
74
  function nps(input) {
75
+ const a=text(input,'Notas').split(/[,;\s]+/).filter(Boolean).map(Number);if(!a.length||a.length>10000||a.some(n=>!Number.isInteger(n)||n<0||n>10))throw Error('Notas devem ser inteiros de 0 a 10. Limite: 10 mil notas.');
76
  const promoters=a.filter(x=>x>=9).length,detractors=a.filter(x=>x<=6).length;return {respostas:a.length,promotores:promoters,neutros:a.length-promoters-detractors,detratores:detractors,nps:Math.round((promoters-detractors)/a.length*10000)/100,formula:'(% notas 9–10) − (% notas 0–6)',pesquisa_sugerida:'De 0 a 10, quanto você recomendaria nosso atendimento?',acao:'Não dispara pesquisas nem importa avaliações reais.'};
77
  }
78
  function internalChat(input,author,message) {