Plataforma completa para criar assistentes WhatsApp com IA, ferramentas customizadas e base de conhecimento
Fluxi é uma plataforma opensource para criar e gerenciar assistentes inteligentes no WhatsApp. Com ele, você pode:
Criar múltiplos agentes com personalidades únicas Configurar ferramentas customizadas (APIs, funções, integrações) Treinar bases de conhecimento (RAG) com seus documentos Integrar múltiplos provedores LLM (OpenRouter, OpenAI, Anthropic, etc.) Conectar ferramentas externas via MCP (Model Context Protocol) Gerenciar múltiplas sessões WhatsApp Monitorar métricas e performance
- Atendimento ao Cliente - Automatize suporte 24/7
- Vendas - Qualifique leads e agende reuniões
- Suporte Técnico - Responda dúvidas com base de conhecimento
- Educação - Assistentes educacionais personalizados
- Agendamentos - Marque consultas e envie lembretes
- Consultas de Dados - Busque informações em sistemas internos
git clone https://github.com/jjhoow/fluxi.git
cd fluxi# Copie o arquivo de exemplo
cp config.example.env .env
# Edite as configurações (opcional)
nano .envArquivo .env básico:
# Configuração do Banco de Dados
DATABASE_URL=sqlite:///./fluxi.db
# Configuração do Servidor
HOST=0.0.0.0
PORT=8001
DEBUG=True
# Diretório de Upload de Imagens
UPLOAD_DIR=./uploads# Criar diretórios necessários
mkdir -p uploads sessoes rags
# Método 1: Usando docker-compose
docker-compose up -d --build
# Método 2: Usando o script helper
chmod +x docker-run.sh
./docker-run.sh setup # Configuração inicial
./docker-run.sh start # Inicia o FluxiAbra seu navegador em http://localhost:8001
git clone https://github.com/jjhoow/fluxi.git
cd fluxipip install -r requirements.txtpython main.pyAbra seu navegador em http://localhost:8001
- Acesse
http://localhost:8001/configuracoes - Adicione sua chave OpenRouter
- Teste a conexão
- Acesse
http://localhost:8001/provedores-llm - Clique em "Novo Provedor"
- Configure:
- Tipo: LM Studio, llama.cpp ou Ollama
- URL:
http://localhost:11434(Ollama) ouhttp://localhost:1234(LM Studio) - Modelo: Seu modelo preferido
- Teste a conexão
- Acesse
http://localhost:8001/sessoes - Clique em "Nova Sessão"
- Preencha:
- Nome: Nome da sessão
- Descrição: Descrição opcional
- Clique em "Criar"
- Clique em "Conectar" na sessão criada
- Escaneie o QR Code com seu WhatsApp
- Acesse
http://localhost:8001/agentes/sessao/{id-da-sessao} - Clique em "Novo Agente"
- Preencha os campos:
- Nome: Nome do agente
- Papel: Ex: "Assistente de Vendas"
- Objetivo: Ex: "Ajudar clientes com produtos"
- Políticas: Ex: "Sempre ser educado e profissional"
- Tarefa: Ex: "Responder dúvidas sobre produtos"
- Objetivo Explícito: Ex: "Aumentar vendas"
- Público-alvo: Ex: "Clientes interessados em produtos"
- Restrições: Ex: "Não fazer promessas que não posso cumprir"
- Selecione o provedor LLM configurado
- Clique em "Criar"
- Envie uma mensagem para o número conectado
- O agente deve responder automaticamente
- Verifique as métricas em
http://localhost:8001/metricas
# Criar diretórios necessários (primeira vez)
mkdir -p uploads sessoes rags
# Iniciar Fluxi
docker-compose up -d --build
# Parar Fluxi
docker-compose down
# Reiniciar Fluxi
docker-compose restart
# Ver logs
docker-compose logs -f
# Verificar status
docker-compose ps
# Abrir shell no container
docker-compose exec fluxi bash# Configurar porta personalizada
PORT=8080 docker-compose up -d
# Rebuild da imagem
docker-compose build --no-cache
# Limpeza completa
docker-compose down -v
docker system prune -f
# Usando script helper (alternativa)
./docker-run.sh start -p 8080
./docker-run.sh build
./docker-run.sh clean# .env
# Configuração do Banco de Dados
DATABASE_URL=sqlite:///./fluxi.db
# Configuração do Servidor
HOST=0.0.0.0
PORT=8001
DEBUG=True
# Diretório de Upload de Imagens
UPLOAD_DIR=./uploads
- Escaneie o QR Code com WhatsApp
- Crie um Agente
- Dentro da sessão, crie um agente
- Configure seu system prompt (papel, objetivo, políticas)
- Adicione ferramentas (opcional)
- Envie uma mensagem!
- Envie mensagem no WhatsApp vinculado
- O agente responderá automaticamente
fluxi/
agente/ # Módulo de agentes inteligentes
config/ # Configurações do sistema
ferramenta/ # Ferramentas executáveis
llm_providers/ # Integrações com provedores LLM
mcp_client/ # Model Context Protocol
mensagem/ # Mensagens WhatsApp
metrica/ # Métricas e monitoramento
rag/ # Sistema RAG (bases de conhecimento)
sessao/ # Sessões WhatsApp
templates/ # Templates HTML (Jinja2)
uploads/ # Arquivos enviados
rags/ # Bases de conhecimento ChromaDB
database.py # Configuração SQLAlchemy
main.py # Aplicação FastAPI
requirements.txt # Dependências Python
README.md # Este arquivo
Gerenciamento de agentes inteligentes com system prompts personalizados, ferramentas e bases de conhecimento.
Principais funcionalidades:
- Criação de agentes com personalidades únicas
- System prompt estruturado (papel, objetivo, políticas, restrições)
- Até 20 ferramentas ativas por agente
- Integração com RAG para busca em documentos
- Suporte a clientes MCP
- Loop agentic para execução de múltiplas ferramentas
- Configurações LLM específicas por agente
Centro de configurações do sistema com gerenciamento de chaves de API, parâmetros LLM e preferências globais.
Principais funcionalidades:
- Sistema chave-valor tipado (string, int, float, bool, json)
- Categorização de configurações (geral, openrouter, agente, llm, rag)
- Configurações padrão para novos agentes
- Teste de conexão com OpenRouter
- Gerenciamento de provedores LLM
- Configurações RAG por provider (OpenAI, Cohere, HuggingFace, Google)
- Interface web para edição
- Conversão automática de tipos
Sistema de function calling com wizard visual para criar ferramentas customizadas que integram APIs e executam código.
Principais funcionalidades:
- Wizard visual de 7 etapas para criação sem código
- Ferramentas WEB (requisições HTTP) e CODE (Python)
- Parser de CURL completo com suporte a autenticação
- Variáveis dinâmicas
{var.TOKEN},{campo},{env.KEY} - Output flexível (LLM, User, Both) com canais (texto, imagem, áudio, vídeo)
- Encadeamento de ferramentas (workflows)
- Mapeamento de resposta (JsonPath)
- Variáveis por ferramenta (API keys, secrets)
- Ferramentas padrão (data/hora, calculadora)
Gerenciamento de provedores LLM locais e externos com suporte a múltiplos modelos e fallback automático.
Principais funcionalidades:
- Suporte a LM Studio, llama.cpp e Ollama
- APIs OpenAI-compatíveis
- Teste de conexão e descoberta de modelos
- Cache de modelos disponíveis
- Estatísticas de uso e performance
- Fallback automático para OpenRouter
- Interface web para gerenciamento
- Configuração de provedores personalizados
Implementação completa do Model Context Protocol para conectar ferramentas externas (GitHub, filesystem, databases).
Principais funcionalidades:
- Suporte a STDIO, SSE e Streamable HTTP
- Biblioteca de presets prontos (GitHub, Jina AI, Brave Search, PostgreSQL, etc.)
- Instalação one-click via JSON
- Sincronização automática de ferramentas
- Integração transparente com agentes
- Gerenciamento de conexões e reconexão automática
- Compatível com Claude Desktop config
Armazenamento e gerenciamento de mensagens WhatsApp com histórico, contexto e métricas de processamento.
Principais funcionalidades:
- Histórico completo de conversas
- Suporte a texto, imagens, áudios, vídeos, documentos
- Contexto de conversação por cliente
- Métricas de processamento (tokens, tempo, ferramentas)
- Registro de respostas do agente
- Status de processamento e resposta
Sistema de analytics e monitoramento com estatísticas de uso, performance e consumo.
Principais funcionalidades:
- Métricas gerais do sistema
- Performance por sessão
- Estatísticas por período
- Taxa de resposta e sucesso
- Consumo de tokens (input/output)
- Tempo médio de processamento
- Clientes únicos atendidos
- Gráficos e visualizações
Sistema RAG (Retrieval-Augmented Generation) com ChromaDB e embeddings para bases de conhecimento.
Principais funcionalidades:
- Upload de documentos (PDF, TXT, DOC, DOCX)
- Adição de texto direto
- Suporte a múltiplos providers (OpenAI, Cohere, HuggingFace, Google)
- Chunking inteligente com overlap
- Busca semântica por similaridade
- Integração transparente com agentes
- Métricas de uso e performance
- Gerenciamento de chunks
Gerenciamento de conexões WhatsApp usando Neonize com suporte a QR Code e múltiplos agentes.
Principais funcionalidades:
- Conexão via QR Code ou Pair Code
- Múltiplas contas WhatsApp simultâneas
- Auto-responder inteligente
- Alternância entre agentes
- Envio de mensagens (texto, imagens, áudios, etc.)
- Gerenciamento de status (conectado/desconectado)
- Reconexão automática
- Histórico de conversas
- FastAPI - Framework web moderno e rápido
- SQLAlchemy - ORM para banco de dados
- Pydantic - Validação de dados
- httpx - Cliente HTTP assíncrono
- OpenRouter - Gateway para múltiplos LLMs
- ChromaDB - Banco vetorial para RAG
- Implementação própria - Sistema RAG customizado
- Neonize - Biblioteca Python para WhatsApp Web
- Jinja2 - Templates HTML com herança
- Bootstrap 5 - Framework CSS responsivo
- Templates modulares - Componentes reutilizáveis
- Interface responsiva - Mobile-first design
- SQLite - Banco principal (padrão)
- Suporte a PostgreSQL/MySQL - Para produção
graph LR
A[Usuário WhatsApp] -->|Mensagem| B[Sessão]
B --> C[Agente Ativo]
C --> D{Tem RAG?}
D -->|Sim| E[Busca Contexto]
E --> F[LLM Provider]
D -->|Não| F
F --> G{Usar Ferramenta?}
G -->|Sim| H[Executa Ferramenta]
H --> F
G -->|Não| I[Resposta Final]
I --> A
- Mensagem recebida via WhatsApp
- Sessão identifica o agente ativo
- Agente constrói system prompt e contexto
- RAG busca informações relevantes (se configurado)
- LLM Provider processa com modelo escolhido
- Ferramentas são executadas se necessário (loop agentic)
- Resposta enviada ao usuário
- Dashboard responsivo com métricas em tempo real
- Wizard visual para criação de ferramentas (7 etapas)
- Templates modulares com herança Jinja2
- Componentes reutilizáveis (forms, cards, modals)
- Navegação intuitiva entre módulos
- Design mobile-first com Bootstrap 5
Crie diferentes agentes especializados (vendas, suporte, etc.) e alterne entre eles na mesma sessão WhatsApp.
Configure agentes com 7 campos específicos:
- Papel
- Objetivo
- Políticas
- Tarefa
- Objetivo Explícito
- Público-alvo
- Restrições
Crie ferramentas via wizard visual:
- Requisições HTTP (GET, POST, PUT, DELETE)
- Autenticação (Bearer, API Key, Basic Auth)
- Variáveis dinâmicas (sessão, cliente, agente)
- Transformação de dados (JsonPath)
- Output flexível (LLM, User, Both)
Treine agentes com seus documentos:
- Upload de PDFs, TXTs, DOCs
- Processamento automático com embeddings
- Busca semântica em tempo real
- Métricas de uso
Integre com diversos provedores:
- OpenRouter (gateway para 200+ modelos)
- OpenAI (GPT-4, GPT-3.5)
- Anthropic (Claude)
- Google (Gemini)
- Suporte a fallback automático
Conecte ferramentas externas:
- GitHub
- Databases
- Filesystem
- APIs customizadas
Acompanhe performance:
- Mensagens processadas
- Tokens consumidos
- Tempo de resposta
- Ferramentas mais usadas
- Custo estimado
O Fluxi usa Jinja2 com herança de templates para uma interface moderna e responsiva:
templates/
base.html # Template base com Bootstrap 5
index.html # Dashboard principal
agente/ # Módulo de agentes
lista.html # Lista de agentes
form.html # Formulário de agente
ferramentas.html # Gerenciar ferramentas
detalhes.html # Detalhes do agente
ferramenta/ # Módulo de ferramentas
lista.html # Lista de ferramentas
form.html # Formulário de ferramenta
wizard/ # Wizard de criação
step1.html # Definição básica
step2.html # Parâmetros
step3.html # Configuração
step4.html # Mapeamento
step5.html # Output
step6.html # Encadeamento
step7.html # Variáveis
sessao/ # Módulo de sessões
lista.html # Lista de sessões
form.html # Nova sessão
conectar.html # QR Code
detalhes.html # Detalhes da sessão
rag/ # Módulo RAG
lista.html # Lista de RAGs
form.html # Novo RAG
treinar.html # Upload de documentos
chunks.html # Gerenciar chunks
buscar.html # Testar busca
mcp/ # Módulo MCP
presets.html # Presets disponíveis
clients.html # Clientes MCP
tools.html # Tools disponíveis
metrica/ # Módulo de métricas
geral.html # Dashboard geral
sessao.html # Métricas por sessão
periodo.html # Estatísticas por período
shared/ # Componentes compartilhados
erro.html # Página de erro
- ** Design Moderno**: Bootstrap 5 com tema personalizado
- ** Responsivo**: Mobile-first design
- ** Interativo**: HTMX para atualizações sem reload
- ** Modular**: Componentes reutilizáveis
- ** Dashboard**: Métricas em tempo real
- ** Wizard Visual**: Criação de ferramentas em 7 etapas
- ** QR Code**: Conexão WhatsApp integrada
- ** Gráficos**: Visualizações de métricas
- ** Busca**: Filtros e pesquisa em listas
- ** Configurações**: Interface amigável para settings
| Página | URL | Descrição |
|---|---|---|
| Dashboard | / |
Visão geral com métricas |
| Sessões | /sessoes |
Gerenciar WhatsApp |
| Agentes | /agentes/sessao/{id} |
Agentes da sessão |
| Ferramentas | /ferramentas |
Lista de ferramentas |
| Wizard | /ferramentas/wizard/step1 |
Criar ferramenta |
| RAG | /rags |
Bases de conhecimento |
| MCP | /mcp/presets |
Presets MCP |
| Métricas | /metricas |
Analytics |
| Config | /configuracoes |
Settings |
- Variáveis de ambiente para credenciais sensíveis
- Sanitização de inputs
- Rate limiting (em desenvolvimento)
- Autenticação de sessões WhatsApp
- Importante: Use HTTPS em produção
- Importante: Não compartilhe
fluxi.dbpublicamente - Docker: Certifique-se de que os diretórios
uploads,sessoeseragsexistam antes de executar
# Configuração do Banco de Dados
DATABASE_URL=sqlite:///./fluxi.db
# Configuração do Servidor
HOST=0.0.0.0
PORT=8001
DEBUG=True
# Diretório de Upload de Imagens
UPLOAD_DIR=./uploads
# LLM (configurável via interface web)
# OPENROUTER_API_KEY=sua-chave-openrouter
# OPENAI_API_KEY=sua-chave-openai
# ANTHROPIC_API_KEY=sua-chave-anthropicAcesse /config para configurar:
- Chaves de API de provedores LLM
- Modelo padrão
- Temperatura, max_tokens, top_p
- System prompts padrão
- Configurações de RAG
Contribuições são bem-vindas! Para contribuir:
- Fork o projeto
- Crie uma branch para sua feature (
git checkout -b feature/MinhaFeature) - Commit suas mudanças (
git commit -m 'Adiciona MinhaFeature') - Push para a branch (
git push origin feature/MinhaFeature) - Abra um Pull Request
- Documente novas funcionalidades
- Adicione testes quando possível
- Siga o padrão de código existente
- Atualize README.md se necessário
Encontrou um bug? Abra uma issue com:
- Descrição do problema
- Passos para reproduzir
- Comportamento esperado vs atual
- Screenshots (se aplicável)
- Versão do Python e SO
- Logs do Docker (se usando Docker):
docker-compose logs
- Autenticação de usuários
- Suporte a múltiplos idiomas
- API REST completa
- Webhooks
- Integração com Telegram
- Dashboard de analytics avançado
- Exportação de conversas
- Templates de agentes prontos
- Marketplace de ferramentas
Este projeto foi completamente documentado com READMEs individuais para cada módulo:
- Agente - Sistema de agentes inteligentes com system prompts
- Config - Centro de configurações do sistema
- Ferramenta - Function calling e wizard de ferramentas
- LLM Providers - Gerenciamento de provedores LLM
- MCP Client - Model Context Protocol para ferramentas externas
- Mensagem - Gerenciamento de mensagens WhatsApp
- Métrica - Analytics e monitoramento
- Configuração OpenRouter
- Configuração Provedores Locais
- Criação de Agentes
- Sistema de Ferramentas
- Configuração RAG
- Integração MCP
- RAG - Bases de conhecimento com embeddings
- Sessão - Conexões WhatsApp
Cada módulo possui documentação detalhada com:
- Arquitetura e componentes
- Modelos de dados
- Fluxos de funcionamento
- Exemplos práticos
- Integrações
- Notas técnicas
Este projeto está sob a licença Apache 2.0. Veja o arquivo LICENSE para mais detalhes.
Este projeto utiliza as seguintes bibliotecas de terceiros:
- whatsmeow - Biblioteca Go para WhatsApp Web multidevice API (usada via neonize)
- neonize - Cliente Python para WhatsApp Web
- FastAPI - Framework web moderno
- SQLAlchemy - ORM para banco de dados
- ChromaDB - Banco vetorial para RAG
- OpenAI - Para embeddings e LLMs
- Issues: GitHub Issues
- Discussões: GitHub Discussions
- FastAPI - Framework web
- Neonize - WhatsApp client
- whatsmeow - WhatsApp Web multidevice API
- ChromaDB - Banco vetorial
- OpenRouter - Gateway LLM
Desenvolvido com para a comunidade opensource
Se este projeto foi útil, considere dar uma estrela!