gwanclassify
Ecossistema Gwan Cloud · Slot 30

Conversa vira estrutura.

Recebe uma conversa e devolve, por turno, sentimento, emoção, intenção e urgência — sempre dentro de enums fechados, para que um dashboard possa depender deles. Mais um agregado com tendência e os picos da conversa.

Roda 100% local. Não tem banco, não guarda nada: nenhum texto de conversa sai da infraestrutura, e quem chama é dono do dado.

Rótulos fechados Sem persistência Nada sai da infra
Estado agora
carregando…
Como consumir

Dois caminhos, alcances diferentes

Este serviço roda na máquina do mantenedor, junto do gwan-slm. Isso decide qual caminho serve para quem.

Produção

Fila RabbitMQ

É o caminho para qualquer app em produção — e o único que atravessa a internet. Atravessa por pull: este serviço puxa do RabbitMQ, nada entra pela NAT.

publica → classify.jobs.requests
resposta → a fila do seu replyTo
           (com correlation_id preservado)
Local

HTTP síncrono

Só alcança quem está na mesma máquina: backend co-locado e desenvolvimento. Não sai daqui.

POST http://gwan-classify:8000/api/classify
GET  /health   → estado e providers
GET  /contract → JSON Schema

É best-effort, não SLA

Com a máquina do mantenedor desligada, a fila acumula e ninguém responde. Publique com TTL (x-message-ttl) e trate a ausência de resposta como caso normal, não como incidente. Isto é característica da topologia, não pendência de deploy.

Contrato

Enum fechado é lei

Todo rótulo que vem de modelo passa por uma camada de coerção antes de entrar no resultado. O que não mapeia vira o rótulo neutro do eixo — nunca um valor novo. É isso que permite um dashboard depender destes nomes.

sentiment positiveneutralnegative encoder em CPU · determinístico
emotion satisfactionfrustrationanger confusionurgencygratitudeneutral vem do SLM · desligado sem ele
intent · suporte questioncomplaintrequest escalationconfirmationchurn_signalother SLM ou regra local
intent · vendas interestobjectionprice_sensitivity ready_to_buystallingdisqualifiedother o domínio troca o vocabulário
urgency lowmediumhigh SLM ou regra local
mode — a procedência fullheuristicencoders_only diz se o rótulo veio de modelo, de regra, ou não veio