Skip to content

Repository files navigation

AutoAssist Logo

AutoAssist IA 🚗💨

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.


✨ Funcionalidades

Recursos Inteligentes (NOG IA)

  • 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.

Dashboard e Gestã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.

Segurança e Cloud (Hardening de Produção)

  • 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, action e hostname.
  • Cloud Resiliency: Conectividade reforçada com suporte a SSL e timeouts otimizados para bancos de dados em nuvem.

🛠️ Tecnologias Utilizadas

Backend & Inteligência Artificial

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).

Frontend

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.

🏗️ Estrutura do Projeto

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

🚀 Como Executar o Projeto

1. Pré-requisitos

2. Configuração do Ambiente

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

3. Instalação e Execução

# Entre na pasta do backend
cd backend

# Instale as dependências
pip install -r requirements.txt

# Execute o servidor
python app.py

4. Redis para desenvolvimento local

O 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:6379

Defina no .env:

REDIS_URL=redis://localhost:6379/0
RATELIMIT_STORAGE_URI=redis://localhost:6379/0

Sem Redis, o cache recai sobre memória local (por processo) e as filas RQ não processam jobs.


🔒 Segurança e Boas Práticas

  • Bcrypt Hashing: Proteção de senhas com algoritmos de derivação de chave.
  • CSP (Content Security Policy): unsafe-eval removido por padrão; reative com CSP_ALLOW_UNSAFE_EVAL=1 apenas 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 (veja utils/cron_auth.require_cron_secret e MAINTENANCE_EMAIL_CRON_SECRET).
  • Cloudflare Turnstile: CAPTCHA anti-bot em /api/cadastro (action signup) e /api/login (action login). O siteverify é feito server-side (utils/turnstile.turnstile_required) validando success, action e hostname no allowlist TURNSTILE_HOSTNAMES — fail-closed em erro de rede/HTTP. Sem TURNSTILE_SECRET_KEY configurada, o decorator é no-op (dev/testes). Para criar o widget via API: token com escopo Account.Turnstile:Edit e POST /accounts/<id>/challenges/widgets ({"name","domains":[...],"mode":"managed"}). Tokens do Turnstile são single-use.
  • Segredos: o .env não deve ser commitado. Em produção, configure os segredos no Render via dashboard/Environment Group.

📝 Licença e Autoria

Ideia original de Clara Francisco. Desenvolvido por Júlio César, Caio Lima, Eduardo Nishida e Caio Yugo.

About

No description, website, or topics provided.

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages