O AutoAssist IA é um ecossistema de inteligência artificial de última geração, desenvolvido especificamente para o mercado automotivo brasileiro. A plataforma integra Processamento de Linguagem Natural (NLP) e Visão Computacional para fornecer diagnósticos precisos, avaliações de mercado e consultoria técnica especializada.
- Consultoria Contextual: O assistente "NOG" agora utiliza o histórico da conversa para oferecer respostas mais profundas e evitar resultados repetitivos.
- E-commerce Automotivo Integrado: Recomendação automática de links para compra de veículos (WebMotors) e peças (Mercado Livre) baseada na necessidade do usuário.
- IA de Previsão de Manutenção: Sistema que analisa descrições (ex: "Troquei o óleo hoje") e utiliza IA para prever a data e quilometragem da próxima revisão.
- Raio-X Mecânico: Análise visual avançada para identificação de ferrugem, desalinhamentos e vazamentos em fotos.
- Busca Inteligente de Mecânicos: Encontre oficinas reais próximas via OpenStreetMap + Google Search, com cache Redis (1h OSM, 24h web). Integrado ao chatbot — pergunte "preciso de um mecânico" e a IA responde com opções na região.
- Histórico Proativo: Painel que monitora a saúde das peças e indica o status de cada manutenção (Ok, Aviso ou Atrasado).
- Mapa de Eventos Automotivos: Varredura automática de feiras, encontros, competições e exposições do setor em sites especializados e no Google, exibidos no mapa com filtros por UF, categoria e período.
- Galeria de Vídeos Otimizada: Nova biblioteca de vídeos com redirecionamento direto para o YouTube, miniaturas em alta resolução e carregamento ultrarrápido.
- Notificações Instantâneas: Sistema de e-mail que alerta o usuário no mesmo dia em que uma manutenção atinge o status crítico ou vence.
- Tabela FIPE Real-Time: Integração com a API FIPE para fornecer valores de mercado precisos e atualizados.
- Feedback Inteligente: Sistema que coleta e organiza o feedback dos usuários para melhoria contínua do sistema.
- Proteção Avançada: Implementação de SRI (Subresource Integrity), CSP (Content Security Policy) e sanitização global contra XSS.
- Google OAuth 2.0: Login simplificado e seguro utilizando contas Google com propagação dinâmica de tokens.
- Autenticação em Duas Etapas (2FA): Camada de segurança adicional para proteção de dados sensíveis.
- CAPTCHA Cloudflare Turnstile: Proteção anti-bot no cadastro e login — validação server-side de
success,actionehostname. - Cloud Resiliency: Conectividade reforçada com suporte a SSL e timeouts otimizados para bancos de dados em nuvem.
| Tecnologia | Função |
|---|---|
| Flask | Servidor robusto e orquestração de APIs REST. |
| Groq API | Modelos de linguagem (LLaMA, Groq Compound) para texto e visão. |
| PyMySQL + SSL | Conexão segura e resiliente com o banco de dados. |
| SMTP / Gmail API | Motor de disparo de notificações proativas por e-mail. |
| JWT + Refresh | Autenticação moderna com Tokens de Acesso e Refresh. |
| Overpass API (OSM) | Consulta de oficinas mecânicas via OpenStreetMap. |
| Google Search | Scraping de resultados locais para mecanicas. |
| Redis | Cache distribuído de IA, dashboard e mechanics (OSM/Web). |
| Tecnologia | Função |
|---|---|
| Vanilla JS | Lógica de estado e consumo de APIs sem frameworks pesados. |
| Glassmorphism UI | Design moderno com transparências e animações dinâmicas. |
| DOMPurify + Marked | Renderização segura de Markdown e sanitização de HTML. |
| Web Speech API | Captura e processamento de voz nativo no navegador. |
AutoAssist/
├── backend/
│ ├── models/ # Modelos de ML para treinamento
│ ├── routes/ # Módulos de API (Auth, Pages, Database, Mechanics)
│ ├── scripts/ # Treinamento do ML
│ ├── services/ # IA e Lógica (NOG IA, Vision, Maintenance, Web Scraping)
│ ├── utils/ # Cache Redis, e-mail, tasks assíncronas e cron auth
│ ├── app.py # Entry-point (Servidor Flask)
│ ├── render.yaml # Blueprint de deploy (Render)
│ ├── docker-compose.yml # Redis local para desenvolvimento
│ └── .env # Variáveis de ambiente (não commitar)
├── frontend/
│ ├── index.html # Landing Page
│ ├── chat.html # Consultor NOG IA
│ ├── maps.html # Mapa (eventos automotivos + mecânicos)
├── dashboard.html # Dashboard
│ ├── library.html # Galeria de Vídeos YouTube
│ ├── maintenance_history.html # Gestão de Manutenções
│ ├── profile.html # Perfil do Usuário
│ └── static/
│ ├── css/
│ │ ├── car-scrollytelling.css # Estilos do carrossel 3D e hero
│ │ ├── shared.css # Estilos compartilhados (navbar, footer)
│ │ ├── responsive.css # Media queries globais
│ │ ├── chat.css # Estilos do consultor NOG IA
│ │ ├── dashboard.css # Estilos do dashboard
│ │ └── profile.css # Estilos do perfil
│ ├── js/
│ │ ├── car-scrollytelling.js # Canvas 2D carrossel com física de perspectiva
│ │ ├── auth.js # Autenticação Google OAuth 2.0
│ │ └── config.js # Configurações do frontend
│ └── logo2.png # Logotipo do projeto
└── README.md
- Python 3.10 ou superior
- Servidor MySQL (Local ou Nuvem)
- Chave de API do Groq (https://console.groq.com)
Crie um arquivo .env na pasta backend/ com:
# Groq (IA)
API_GROQ=sua_chave_aqui
GROQ_PRIMARY_MODEL=groq/compound-mini
GROQ_UTILITY_MODEL=openai/gpt-oss-20b
GROQ_VISION_MODEL=meta-llama/llama-4-scout-17b-16e-instruct
GROQ_FALLBACK_MODELS=groq/compound
# Redis (cache de IA, dashboard, filas RQ e rate limit)
# Local (docker-compose): redis://localhost:6379/0
# Upstash (producao): rediss://default:<token>@<host>.upstash.io:6379
REDIS_URL=redis://localhost:6379/0
RATELIMIT_STORAGE_URI=redis://localhost:6379/0
# TTL dos caches de IA (segundos)
GROQ_CACHE_TTL_SECONDS=3600
GROQ_VISION_CACHE_TTL_SECONDS=86400
GROQ_PDF_CACHE_TTL_SECONDS=86400
DASHBOARD_CACHE_TTL_SECONDS=30
# Banco de dados
DB_HOST=seu_host
DB_USER=seu_usuario
DB_PASSWORD=sua_senha
DB_NAME=seu_banco
AUTO_INIT_DB=1
# E-mail (provedor google_script usa Google Apps Script)
EMAIL_REMETENTE=seu_email@gmail.com
EMAIL_SENHA_APP=sua_senha_app_gmail
EMAIL_FROM_NAME=AutoAssist
EMAIL_PROVIDER=google_script
GOOGLE_SCRIPT_URL=https://script.google.com/macros/s/xxx/exec
GOOGLE_SCRIPT_SECRET=xxx
# Google OAuth
GOOGLE_CLIENT_ID=seu_client_id
GOOGLE_CLIENT_SECRET=seu_client_secret
GOOGLE_REDIRECT_URI=https://seu-dominio/api/auth/google/callback
# URLs do frontend (CORS/WebSocket e links de e-mail)
URL_DEV=http://127.0.0.1:5000/
URL_PROD=https://seu-dominio
# Seguranca / producao
FLASK_ENV=production
JWT_SECRET_KEY=gere_um_segredo_forte
DEMO_LOGIN_ENABLED=0
CSP_ALLOW_UNSAFE_EVAL=0
HEALTHCHECK_EXTERNAL_CHECKS=1
MAINTENANCE_EMAIL_CRON_SECRET=gere_um_segredo_forte
# Pagamentos (Cakto)
CAKTO_CHECKOUT_URL=https://pay.cakto.com.br/xxx
BASE_URL=https://api.cakto.com.br/
CAKTO_WEBHOOK_SECRET=xxx
# Cloudflare Turnstile (CAPTCHA anti-bot)
# Criar widget: https://dash.cloudflare.com -> Turnstile -> Create Widget
# (ou via API, veja a seção "Segurança e Boas Práticas")
TURNSTILE_SITE_KEY=0x4AAAAAAA...
TURNSTILE_SECRET_KEY=segredo_do_widget
# Frontends autorizados a emitir token, separados por vírgula, SEM protocolo
# (produção: só o domínio real; dev: localhost,127.0.0.1)
TURNSTILE_HOSTNAMES=seu-dominio.com,localhost,127.0.0.1# Entre na pasta do backend
cd backend
# Instale as dependências
pip install -r requirements.txt
# Execute o servidor
python app.pyO cache de IA, o cache do dashboard (FIPE + predições de manutenção), as filas RQ (e-mails/manutenção) e o rate limit usam Redis. Para subir um Redis local:
docker compose up -d # sobe redis:7-alpine em localhost:6379Defina no .env:
REDIS_URL=redis://localhost:6379/0
RATELIMIT_STORAGE_URI=redis://localhost:6379/0Sem Redis, o cache recai sobre memória local (por processo) e as filas RQ não processam jobs.
- Bcrypt Hashing: Proteção de senhas com algoritmos de derivação de chave.
- CSP (Content Security Policy):
unsafe-evalremovido por padrão; reative comCSP_ALLOW_UNSAFE_EVAL=1apenas se estritamente necessário.unsafe-inlineé mantido para o frontend estático (migração para nonce é recomendada). - JWT Protection: Endpoints protegidos garantem que apenas usuários autenticados acessem dados sensíveis.
- Cron Auth: rotas agendadas devem exigir
X-Cron-Secret(vejautils/cron_auth.require_cron_secreteMAINTENANCE_EMAIL_CRON_SECRET). - Cloudflare Turnstile: CAPTCHA anti-bot em
/api/cadastro(actionsignup) e/api/login(actionlogin). O siteverify é feito server-side (utils/turnstile.turnstile_required) validandosuccess,actionehostnameno allowlistTURNSTILE_HOSTNAMES— fail-closed em erro de rede/HTTP. SemTURNSTILE_SECRET_KEYconfigurada, o decorator é no-op (dev/testes). Para criar o widget via API: token com escopoAccount.Turnstile:EditePOST /accounts/<id>/challenges/widgets({"name","domains":[...],"mode":"managed"}). Tokens do Turnstile são single-use. - Segredos: o
.envnão deve ser commitado. Em produção, configure os segredos no Render via dashboard/Environment Group.
Ideia original de Clara Francisco. Desenvolvido por Júlio César, Caio Lima, Eduardo Nishida e Caio Yugo.
