3.2 KiB
Plano de Ação: Arquitetura de IA para o Novo Chatwoot
1. O Problema Anterior
No projeto legado (referência: reference/chatwoot-develop), os módulos de IA (Jasmine, Captain, CrmInsights) foram injetados em listeners globais e workers que processavam todas as mensagens ou rodavam rotinas frequentes. Isso levou a um uso indiscriminado e excessivo de tokens LLM (OpenAI), resultando em custos insustentáveis.
2. A Nova Abordagem: Sob Demanda e Controlado
Neste novo projeto, a arquitetura será desenhada para que a IA seja ativada apenas quando estritamente necessário ou configurado, evitando vazamentos e processamento redundante.
2.1 Integrações WhatsApp (Canais)
As integrações Wuzapi e Evolution API serão importadas do projeto antigo para garantirmos a funcionalidade de base. Ação: Trazer endpoints, services (providers) e UI de configurações limitados a estas duas integrações de canal. Prioritizar manutenibilidade para facilitar atualizações futuras do Chatwoot core.
2.2 Bot de Atendimento e FAQ
Ação:
- Utilizar Padrão Nativo (
AgentBot): Ao invés de um listener global (jasmine_listener), criaremos a IA como umAgentBotdo Chatwoot. - O processamento de RAG (Busca Semântica no Knowledge Base) ocorrerá de forma orgânica e somente nas conversas atribuídas ao AgentBot (status: pending/bot-assigned).
- O contexto a ser enviado ao LLM será resumido e utilizaremos Cache ou restrição de contexto para as últimas X mensagens para baratear o "Cached Input".
2.3 Bot de Reservas e Fluxos Complexos (Especialista/Function Calling)
Ação:
- Em vez de ter um "Captain" rodando sobre toda mensagem, adotaremos Roteamento Híbrido:
- Identificação simples (com modelo barato ou rules-engine/nlu light) se a intenção é "reserva" ou consultar "preço/disponibilidade".
- Uso de function calling estrito apenas quando dentro desse funil específico, minimizando tokens.
- O histórico não crescerá infinitamente no payload. Quando coletado dado do cliente (ex: quarto, data), será guardado em KV ou banco de dados (contexto da reserva) em vez de precisar que o LLM releia todo o histórico gigante.
2.4 Análise / Resumo de CRM (CrmInsights)
Ação:
- Remoção de Background Jobs Frequentes: Não rodar script periódico monitorando conversas para resumos ou sentimento.
- Hooks sob Demanda: A análise visual e a extração estruturada ocorrerá: a) Diretamente num botão manual acionado pelo humano. b) No exato momento de RESOLVER (Resolved) a conversa, onde estruturamos o JSON do ticket e salvamos no banco, servindo como relatório pós-venda (uma execução por ticket).
3. Próximos Passos Iniciais
- Bloqueio do Legado: Aplicamos um "return" antecipado (
early return) no projeto legado (reference/chatwoot-develop) nos três pontos mapeados:jasmine_listener.rb,processor_service.rbeupdate_job.rb. Isso foi feito para garantir a paralisação do vazamento financeiro lá, mantendo o sistema em pé, apenas com atendimento humano. - Implementação Nova: Agora que o custo do outro projeto está congelado, podemos iniciar a implantação das funcionalidades neste novo projeto de forma controlada através da funcionalidade nativa de AgentBots.