Logotipo Hedhog

Receba novidades do Hedhog no seu e-mail

Novos lançamentos, receitas e breaking changes — sem spam.

Submódulo sac

ai-suggestions

Rascunhos de resposta por IA para o atendente, refináveis em linguagem natural e nunca enviados sem confirmação humana.

Caminho de origem: libraries/sac/src/ai

Arquivo do módulo: sac-ai.module.ts

Introdução

Um rascunho é gerado a cada chamado novo e a cada resposta do cliente. Como todas as entradas convergem para os mesmos dois métodos, e-mail e WhatsApp ganham isso de graça. A geração automática roda na fila — ninguém está esperando por ela —, enquanto um rascunho pedido ou refinado na tela é síncrono, porque ali há um atendente olhando.

O atendente tem três saídas, todas atos explícitos: confirmar e enviar, refinar com uma instrução em linguagem natural ("mais curto", "cite o prazo de 5 dias úteis") ou jogar o texto no editor. Os refinamentos se encadeiam por `parent_suggestion_id`, então a sequência de ajustes fica auditável. Confirmar passa pelo caminho de resposta de sempre, com o mesmo transporte por canal, o mesmo SLA e o mesmo registro de eventos.

Só mensagens públicas entram no contexto: notas internas são onde a equipe escreve o que não vai para o cliente. Um índice único parcial garante um rascunho AUTOMÁTICO por mensagem disparadora — uma conversa de WhatsApp com dez mensagens seguidas não vira dez chamadas ao modelo —, enquanto os refinamentos pedidos pelo atendente ficam de fora dele de propósito. O prompt de sistema é registrado com frases obrigatórias que carregam a defesa contra injeção de prompt: se um override no banco as remover, o resolvedor descarta o override e volta à versão em código, de modo que a proteção não sai pela tela do admin.

Endpoints HTTP

4 endpoints

Último rascunho do chamado, para a tela mostrar sem esperar a geração.

Params
id (int)

Gera um rascunho ou refina o atual. Síncrono: há um atendente esperando na tela.

Params
id (int)

Body

FieldTypeRequiredNotes
instructionstring (max 1000)noPlain-language adjustment; empty generates a fresh draft
parent_suggestion_idintnoDraft being refined; empty uses the most recent

Confirma e publica o rascunho como resposta do atendente, marcando a sugestão como usada.

Params
id (int)

Body

FieldTypeRequiredNotes
bodystringnoWhat was actually sent — the agent may have edited the draft before confirming

Registra o feedback ou descarta o rascunho.

Params
id (int)

Body

FieldTypeRequiredNotes
feedbackhelpful | not_helpfulno
statusdiscardedno