Guia de Conectores Omnichannel¶
O Bruce se conecta diretamente às suas plataformas de mensagens favoritas: Discord, WhatsApp, Telegram e um Web Chat integrado.
1. Arquitetura dos Conectores¶
Os conectores atuam como pontes leves e desacopladas:
1. Ingestão: Ouve mensagens recebidas, normaliza o payload e envia uma tarefa message:process para o Redis.
2. Despacho (Dispatch): Registra um ConnectorDispatcher no worker para entregar as respostas de volta à plataforma correta.
3. Divisão em Partes (Chunking): Fragmenta automaticamente respostas longas que excedam os limites de caracteres de cada plataforma (ex: 2.000 caracteres no Discord).
flowchart LR
subgraph Platforms ["Plataformas Externas"]
DC_P[Gateway do Discord]
WA_P[Rede do WhatsApp]
TG_P[API de Bots do Telegram]
end
subgraph Connectors ["Conectores do Bruce"]
DC_C[Conector Discord]
WA_C[Conector WhatsApp]
TG_C[Conector Telegram]
end
subgraph Core ["Fila & Worker do Bruce"]
R[(Redis Asynq)]
W[Processador Worker]
end
DC_P <-->|WebSocket| DC_C
WA_P <-->|TCP Multi-Device| WA_C
TG_P <-->|HTTP Long-Polling| TG_C
DC_C & WA_C & TG_C -->|Enfileira Tarefa| R
R -->|Desenfileira| W
W -->|Despacha Resposta| DC_C & WA_C & TG_C
2. Conector Discord¶
Passos de Configuração:¶
- Acesse o Portal de Desenvolvedores do Discord.
- Clique em New Application, defina o nome (ex:
Bruce) e vá para a aba Bot. - Em Privileged Gateway Intents, habilite:
- ✅ Message Content Intent (Obrigatório para que o Bruce possa ler o conteúdo das mensagens).
- Clique em Reset Token e copie o token gerado.
- Em OAuth2 → URL Generator:
- Escopos:
bot - Permissões do Bot:
Send Messages,Read Messages/View Channels,Read Message History. - Abra o link gerado no seu navegador e convide o bot para o seu servidor pessoal.
- Configure o
config.yml:
Recursos & Comportamento:¶
- Mensagens Diretas (DMs): O Bruce responde quando você envia uma mensagem privada direta.
- Divisão Automática de Mensagens (Auto-Chunking): O Discord impõe um limite estrito de 2.000 caracteres por mensagem. O Bruce inspeciona as respostas e as quebra automaticamente em partes menores que 1.900 caracteres em limites de palavras limpos, preservando blocos de código e formatação.
3. Conector WhatsApp¶
O Bruce conecta ao WhatsApp usando a biblioteca whatsmeow, que implementa o protocolo oficial do WhatsApp Multi-Device. Você vincula o Bruce como um aparelho conectado no seu celular — sem API do Meta Business e sem custos mensais.
Passos de Configuração:¶
- Configure o
config.yml: - Inicie o Bruce:
- Um QR Code será impresso nos logs do terminal.
- No seu smartphone, abra o WhatsApp → Configurações → Aparelhos conectados → Conectar um aparelho.
- Escaneie o QR Code exibido no terminal.
- O Bruce salvará as chaves criptográficas em
./data/whatsapp.db. Nas próximas reinicializações, ele se conectará automaticamente sem precisar ler o QR Code de novo.
4. Conector Telegram¶
O Bruce se conecta ao Telegram via HTTP Long-Polling. Isso significa que você não precisa de IP público fixo, domínio nem portas abertas no firewall.
Passos de Configuração:¶
- No Telegram, converse com o
@BotFather. - Envie o comando
/newbot, escolha o nome e um username terminado embot. - O
@BotFatherresponderá com o Token do Bot (ex:123456789:ABCdefGhIJKlmNoPQRsTUVwxyZ). - Configure o
config.yml: - Inicie o Bruce e envie uma mensagem para o bot recém-criado.
5. Web Chat¶
Para conversar pelo navegador sem depender de mensageiros externos, o Bruce oferece uma interface de chat web embutida na raiz do painel (http://localhost:8080/):
- Criação de múltiplos tópicos de conversas independentes.
- Renderização em tempo real de markdown e destaque de sintaxe em blocos de código.
- Alimentado pelos endpoints REST POST /api/v1/chat e GET /api/v1/chat/sessions.