36 lines
3.2 KiB
Markdown
36 lines
3.2 KiB
Markdown
# 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 um `AgentBot` do 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**:
|
|
1. Identificação simples (com modelo barato ou rules-engine/nlu light) se a intenção é "reserva" ou consultar "preço/disponibilidade".
|
|
2. 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.rb` e `update_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.
|