O AutoU é um sistema inteligente de classificação e resposta automática de e-mails desenvolvido como MVP (Minimum Viable Product). O sistema utiliza modelos de IA para classificar e-mails como "Produtivos" ou "Improdutivos" e sugere respostas apropriadas.
- Classificação Zero-Shot: Utiliza o modelo
joeddav/xlm-roberta-large-xnlipara classificar e-mails sem necessidade de treinamento específico - Detecção de Intenção: Identifica 6 tipos de intenção (status, documentos, suporte, agradecimento, social, spam)
- Sugestão de Respostas: Gera respostas baseadas em templates ou integração com OpenAI
- Scores de Confiança: Exibe níveis de confiança para classificação e intenção (Alta/Média/Baixa)
- Dark Mode: Toggle entre modo claro e escuro com persistência
- Animações Nativas: Transições suaves em CSS/JS para melhor UX
- Gráficos de Confiança: Barras de progresso visuais com gradientes coloridos
- Auto-refresh: Classificação automática após 2 segundos de digitação
- Feedback Visual: Estados de loading, notificações e indicadores visuais
- Toast Otimizado: Notificações no canto inferior direito com responsividade mobile
- UX Mobile: Interface adaptada para dispositivos móveis seguindo convenções nativas
- Instalável: Pode ser instalado como app nativo no dispositivo
- Service Worker: Funciona offline e cache inteligente
- Manifest: Ícone personalizado e configurações de app
- Responsivo: Interface adaptável para desktop e mobile
- Histórico LocalStorage: Salva classificações localmente no navegador
- Indicadores Auto-gerados: Marca entradas criadas via auto-refresh
- Processamento de Arquivos: Suporte para arquivos .txt e .pdf
- API RESTful: Endpoints para integração com outros sistemas
- Backend: FastAPI, Python 3.11+, Uvicorn
- IA/ML: Transformers (Hugging Face), XLM-RoBERTa, NLTK
- Frontend: HTML5, Tailwind CSS, Alpine.js, CSS Animations
- PWA: Service Worker, Web App Manifest, LocalStorage
- Testes: pytest, TestClient
- Deploy: AWS Lambda, Serverless Framework, Docker
- Arquivos: PDFMiner, Multipart Forms
O AutoU está configurado para deploy na AWS Lambda usando Serverless Framework:
- ✅ Status: Funcionando
- 🔗 URL:
https://x1r6i3udxg.execute-api.us-east-1.amazonaws.com/dev/ - 📁 Guia: Veja
deploy/GUIA_AWS_COMPLETO.mdpara instruções detalhadas
cd deploy
npm install
npx serverless deploy- Python 3.11 ou superior
- pip
- Clone o repositório:
git clone <repository-url>
cd autou- Instale as dependências:
pip install -r requirements.txt3.2. Configure variáveis de ambiente (opcional):
cp deploy/.env.example .env
# Edite o arquivo .env com suas configurações- Execute o servidor:
uvicorn app.main:app --reload- Acesse a aplicação:
- Interface Web: http://localhost:8000
- Documentação da API: http://localhost:8000/docs
"Preciso do status do chamado #12345. Quando será resolvido?"
→ Categoria: Produtivo | Intenção: Solicitação de informações
"Segue em anexo o comprovante solicitado para o processo 8821."
→ Categoria: Produtivo | Intenção: Fornecimento de informações
"Feliz Natal a toda a equipe! Obrigado pelo suporte."
→ Categoria: Improdutivo | Intenção: Agradecimento/Felicitação
"OFERTA IMPERDÍVEL! 70% DE DESCONTO! Clique aqui!"
→ Categoria: Improdutivo | Intenção: Spam/Marketing
- Cole um dos exemplos na caixa de texto
- Clique "Classificar Email" ou aguarde o auto-refresh (2s)
- Observe os gráficos de confiança e resposta sugerida
- Teste o dark mode (🌙) e instale como PWA (📱)
pytestpytest --cov=app# Testes da API
pytest tests/test_api.py
# Testes do módulo NLP
pytest tests/test_nlp.py
# Testes dos responders
pytest tests/test_responders.py
# Testes dos utilitários
pytest tests/test_utils.pyInterface web principal
Health check do serviço
Resposta:
{
"status": "ok",
"service": "AutoU Email Classifier"
}Processa e classifica e-mail
Parâmetros:
text(string): Texto do e-mailfile(arquivo): Arquivo .txt ou .pdf (opcional)
Resposta:
{
"category": "Produtivo",
"intent": "Solicitação de Status",
"category_score": 0.95,
"intent_score": 0.87,
"suggested_reply": "Olá! Recebemos sua solicitação...",
"reply_source": "template"
}docker build -t autou .docker run -p 8000:8000 -e OPENAI_API_KEY=your_key_here autouversion: '3.8'
services:
autou:
build: .
ports:
- "8000:8000"
environment:
- OPENAI_API_KEY=${OPENAI_API_KEY}
- OPENAI_MODEL=gpt-4o-mini
- ZSL_MODEL=joeddav/xlm-roberta-large-xnli
- MAX_TEXT_CHARS=20000- Fork/Clone este repositório
- Conecte seu repositório ao Render.com
- Importe o projeto - o arquivo
render.yamlserá detectado automaticamente - Configure as variáveis de ambiente:
OPENAI_API_KEY: Sua chave da OpenAI (opcional, mas recomendado)- Outras variáveis já estão pré-configuradas no
render.yaml
- Deploy será iniciado automaticamente
# Use o script de deploy para Render
./deploy/deploy.sh render- Crie um novo Web Service no Render
- Conecte seu repositório GitHub
- Configure:
- Build Command:
pip install -r requirements.txt - Start Command:
uvicorn app.main:app --host 0.0.0.0 --port $PORT - Environment: Python 3
- Build Command:
- Adicione as variáveis de ambiente necessárias
# Use o script de deploy para Railway
./deploy/deploy.sh railway- Conecte seu repositório ao Railway
- Configure as variáveis de ambiente:
OPENAI_API_KEY=your_key_here OPENAI_MODEL=gpt-4o-mini ZSL_MODEL=joeddav/xlm-roberta-large-xnli MAX_TEXT_CHARS=20000 - O deploy será automático usando o
Dockerfile
# Use o script de deploy para Heroku
./deploy/deploy.sh heroku- Instale o Heroku CLI
- Execute os comandos:
heroku create your-app-name heroku config:set OPENAI_API_KEY=your_key_here heroku config:set OPENAI_MODEL=gpt-4o-mini git push heroku main
- Lance uma instância EC2 (t2.micro para teste)
- Instale Docker:
sudo yum update -y sudo yum install -y docker sudo service docker start
- Clone e execute:
git clone your-repo-url cd autou sudo docker build -t autou . sudo docker run -d -p 80:8000 -e OPENAI_API_KEY=your_key autou
| Variável | Obrigatória | Padrão | Descrição |
|---|---|---|---|
OPENAI_API_KEY |
Não | - | Chave da API OpenAI para respostas inteligentes |
OPENAI_MODEL |
Não | gpt-4o-mini |
Modelo OpenAI a utilizar |
ZSL_MODEL |
Não | joeddav/xlm-roberta-large-xnli |
Modelo de classificação |
HOST |
Não | 0.0.0.0 |
Host do servidor |
PORT |
Não | 8000 |
Porta do servidor |
MAX_TEXT_CHARS |
Não | 20000 |
Limite de caracteres por texto |
Após o deploy, teste os endpoints:
# Health check
curl https://your-app-url.com/health
# Teste de classificação
curl -X POST https://your-app-url.com/api/process \
-F "text=Preciso de ajuda com o sistema"- Logs: Acesse via dashboard da plataforma escolhida
- Métricas: CPU, memória e tempo de resposta
- Health Check: Endpoint
/healthpara monitoramento automático
OPENAI_API_KEY: Chave da API OpenAI (opcional)OPENAI_MODEL: Modelo OpenAI a usar (padrão: gpt-3.5-turbo)ZSL_MODEL: Modelo de classificação zero-shotHOST: Host do servidor (padrão: 0.0.0.0)PORT: Porta do servidor (padrão: 8000)MAX_TEXT_LENGTH: Limite de caracteres para texto
autou/
├── app/ # Aplicação principal
│ ├── main.py # FastAPI app e endpoints
│ ├── nlp.py # Classificação zero-shot com XLM-RoBERTa
│ ├── responders.py # Templates de resposta inteligentes
│ ├── utils.py # Utilitários para arquivos PDF/TXT
│ ├── static/ # Arquivos estáticos (CSS, JS, PWA)
│ └── templates/ # Interface web moderna
├── deploy/ # 🚀 Scripts e configurações de deploy
│ ├── README.md # Instruções de deploy e configuração
│ ├── deploy.sh # Script automatizado de deploy
│ └── .env.example # Template de variáveis de ambiente
├── docs/ # 📚 Documentação técnica detalhada
│ ├── README.md # Índice da documentação
│ ├── ARQUITETURA.md # Documentação técnica completa
│ ├── DESIGN_ARCHITECTURE.md # Arquitetura de design e UX
│ └── MVP_INICIAL.md # Documentação histórica do MVP
├── sample_emails/ # E-mails de exemplo para teste
├── tests/ # Testes automatizados completos
├── tests_temp/ # Arquivos de teste temporários
├── requirements.txt # Dependências Python
├── Dockerfile # Configuração Docker
├── render.yaml # Configuração Render.com
└── README.md # Este arquivo
Para informações técnicas detalhadas, consulte a documentação completa:
- Arquitetura do Sistema - Documentação técnica completa
- Design e UX - Arquitetura visual e fluxos
- Melhorias UX - Toast reposicionado e otimizações mobile PWA
- Changelog - Histórico de mudanças do projeto
- Índice da Documentação - Guia completo da documentação
- Processamento local dos dados
- Não armazenamento de e-mails
- Integração opcional com OpenAI (configurável)
- Logs mínimos para debugging
Implementadas para resolver problemas de limite de memória no Render:
- ✅ Configurações centralizadas com monitoramento de memória
- ✅ Limpeza automática de memória com garbage collection
- ✅ Limites otimizados: arquivos (5MB), texto (10k chars)
- ✅ Modelo NLP otimizado com fallback automático
- ✅ Dependências otimizadas com versões específicas
- ✅ Monitoramento em tempo real via endpoint
/health
📋 Documentação completa: OTIMIZACOES_PERFORMANCE.md
- Extração de IDs de tickets
- Dashboard de métricas
- Fila assíncrona para processamento
- Integração com SSO
- Suporte a mais formatos de arquivo
- Interface de administração
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
- Fork o projeto
- Crie uma branch para sua feature (
git checkout -b feature/AmazingFeature) - Commit suas mudanças (
git commit -m 'Add some AmazingFeature') - Push para a branch (
git push origin feature/AmazingFeature) - Abra um Pull Request
Para suporte, abra uma issue no repositório ou entre em contato através do e-mail de suporte.