Documentação técnica do projeto AI-CONSULT — uma aplicação Python…
INEMA
Como funciona a criação dos PowerPoints
NÃO há template externo - As apresentações são criadas do zero programaticamente usando a biblioteca python-pptx.
Estrutura:
- Criação em branco prs = Presentation() # Nova apresentação vazia
- Dimensões fixas
- Formato: 16:9 widescreen
- Largura: 13.333 polegadas
- Altura: 7.5 polegadas
- Esquema de cores (linhas 22-31):
- Azul escuro #1F4E79 - Cabeçalhos principais
- Azul claro #4472C4 - Elementos secundários
- Cinza #595959 - Subtítulos
- Cinza escuro #404040 - Texto corpo
- Branco #FFFFFF - Texto claro
- Verde #00B050 - Destaques/sucesso
- Amarelo #FFC000 - Avisos
- Tipos de slides:
- Title slide - Slide de título com logo
- Section divider - Divisor de seção (fundo azul)
- Content slide - Conteúdo com título
- Bullet points - Listas com marcadores
- Image slide - Slides com imagens (diagramas Mermaid)
- Contact slide - Slide de contato final
-
Dois tipos de apresentação:
-
Executive Summary (10-15 slides): a. Título b. Resumo executivo c. Estado atual d. Maturidade AI e. Pain points f. Top 5 quick wins g. Roadmap estratégico h. ROI esperado i. Próximos passos j. Contato
Full Findings (30-40 slides): - Todos os deliverables detalhados - Diagramas Mermaid - Análises completas
Como personalizar:
Se você quiser usar um template corporativo, você pode:
- Criar um template .pptx com seu design
- Modificar linha 87/140: prs = Presentation('caminho/para/template.pptx')
- Ajustar as cores (linhas 22-31)
- Adicionar logo nos slides
git pull docker compose up -d --build docker compose logs -f
O erro "Invalid operation: The response.text quick accessor requires the response to contain a valid Part" acontecia quando os filtros de segurança do Gemini bloqueavam uma resposta. Agora:
- Uso direto da API - Bypassa o wrapper para melhor controle
- Prompt mais seguro - "What is 2+2?" em vez de prompts que podem ser bloqueados
- Checagens de segurança - Verifica se response.text existe antes de acessar
- Detecta bloqueios - Identifica quando é filtro de segurança vs erro real
- Status "warning" - APIs bloqueadas por filtros aparecem como ⚠️ (aviso) em vez de ❌ (erro)
aistudio.google.com/api-keys ↗
perplexity.ai/account/api/keys ↗
perplexity.ai/account/api/billing ↗
vou organizer melhor o conteudo acima
E gere uma SECRET_KEY aleatória: python3 -c "import os; print(os.urandom(24).hex())"
Cole o resultado no SECRET_KEY do .env.
Depois reinicie o Docker: cd ~/AI-CONSULT docker compose restart
Altere para credenciais seguras: APP_USERNAME=seu-usuario-unico APP_PASSWORD=SenhaForte@2024!Muito$Segura
● Passo a Passo:
-
Conecte na VPS: ssh root@seu-ip-vps
-
Entre na pasta do projeto: cd ~/AI-CONSULT
-
Baixe as atualizações: git pull
-
Reconstrua e reinicie o Docker: docker compose up -d --build
-
(Opcional) Veja os logs: docker compose logs -f Pressione Ctrl+C para sair dos logs.
Explicação:
- git pull - Baixa as últimas mudanças do GitHub
- docker compose up -d - Sobe o container em background
- --build - Reconstrói a imagem com o código novo
- -d - Roda em modo "detached" (background)
O processo todo leva ~1-2 minutos!
A aplicação vai parar por alguns segundos durante a reconstrução, mas volta automaticamente. O novo sistema de erros vai estar funcionando imediatamente!
mermai free
(rodar todo dia às 2am)
crontab -e
Adicione:
0 2 * * * /root/backup-ai-consult.sh
Checklist Final
- VPS com Ubuntu/Debian instalado
- Docker e Docker Compose instalados
- Projeto clonado do GitHub
- Arquivo .env configurado com API keys
- Aplicação rodando via docker compose up -d
- Firewall configurado (portas 22 e 8888)
- Nginx configurado (se usar domínio)
- SSL configurado (se usar domínio)
- Backup configurado
Agora você pode:
Na sua VPS⌗
git clone github.com ↗
cd AI-CONSULT
docker-compose up -d>
qual a configuraca para isso ●
Para rodar a aplicação na VPS com Docker, você precisa de:
1️⃣ Requisitos da VPS
Especificações Mínimas:
- CPU: 1 vCPU (2 vCPUs recomendado)
- RAM: 2GB mínimo (4GB recomendado)
- Disco: 10GB SSD
- OS: Ubuntu 20.04+ ou Debian 11+
- Porta: 8888 liberada no firewall
Provedores Recomendados:
- DigitalOcean - Droplet $6/mês (1GB RAM)
- Vultr - $6/mês
- Linode - $5/mês
- AWS Lightsail - $5/mês
- Hetzner - €4.5/mês (melhor custo-benefício)
- Contabo - €4/mês
2️⃣ Instalação na VPS (Passo a Passo)
Conectar na VPS:
ssh root@seu-ip-vps
Instalar Docker:
Atualizar sistema⌗
apt update && apt upgrade -y
Instalar Docker⌗
curl -fsSL get.docker.com ↗ -o get-docker.sh
sh get-docker.sh
Instalar Docker Compose⌗
apt install docker-compose-plugin -y
Verificar instalação⌗
docker --version
docker compose version
Clonar o repositório:
Ir para diretório home⌗
cd ~
Clonar projeto⌗
git clone github.com ↗
cd AI-CONSULT
Configurar variáveis de ambiente:
Copiar arquivo de exemplo⌗
cp .env.example .env
Editar com suas chaves de API⌗
nano .env
Dentro do .env, adicione:
PERPLEXITY_API_KEY=pplx-xxxxxxxxxxxxxxxxxxxxxxx
GEMINI_API_KEY=AIzaSyxxxxxxxxxxxxxxxxxxxxxxx
Salve com Ctrl+O, Enter, Ctrl+X
Rodar a aplicação:
Iniciar em background⌗
docker compose up -d
Ver logs (opcional)⌗
docker compose logs -f
Acessar a aplicação:
3️⃣ Configurar Firewall (Segurança)
Instalar UFW⌗
apt install ufw -y
Permitir SSH⌗
ufw allow 22/tcp
Permitir porta da aplicação⌗
ufw allow 8888/tcp
Ativar firewall⌗
ufw enable
Verificar status⌗
ufw status
4️⃣ Configurar Domínio (Opcional mas Recomendado)
Se você tem um domínio (ex: estrategia-ia.com.br):
Instalar Nginx como proxy reverso:
apt install nginx -y
Configurar Nginx:
nano /etc/nginx/sites-available/ai-consult
Adicione:
server {
listen 80;
server_name estrategia-ia.com.br www.estrategia-ia.com.br;
location / {
proxy_pass http://localhost:8888;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Ativar configuração:
ln -s /etc/nginx/sites-available/ai-consult /etc/nginx/sites-enabled/
nginx -t
systemctl restart nginx
Adicionar HTTPS (SSL gratuito):
Instalar Certbot⌗
apt install certbot python3-certbot-nginx -y
Obter certificado SSL⌗
certbot --nginx -d estrategia-ia.com.br -d www.estrategia-ia.com.br
Agora acesse via: estrategia-ia.com.br ↗
5️⃣ Comandos Úteis
Ver logs em tempo real⌗
docker compose logs -f
Parar aplicação⌗
docker compose down
Reiniciar aplicação⌗
docker compose restart
Atualizar código (quando fizer mudanças)⌗
git pull
docker compose up -d --build
Ver uso de recursos⌗
docker stats
Acessar container⌗
docker compose exec ai-consult bash
Ver arquivos gerados⌗
ls -lh output/
6️⃣ Monitoramento (Opcional)
Instalar htop para monitorar recursos⌗
apt install htop -y
htop
Ver espaço em disco⌗
df -h
Ver uso de memória⌗
free -h
7️⃣ Backup Automático (Recomendado)
Criar script de backup⌗
nano /root/backup-ai-consult.sh
Adicione:
!/bin/bash
tar -czf /root/backups/ai-consult-$(date +%Y%m%d).tar.gz -C /root
AI-CONSULT/output
find /root/backups -name "ai-consult-*.tar.gz" -mtime +7 -delete
Tornar executável⌗
chmod +x /root/backup-ai-consult.sh
Criar diretório de backups⌗
mkdir -p /root/backups
Adicionar ao cron⌗
Criei toda a infraestrutura Docker para você. Aqui está o resumo:
Arquivos criados:
- Dockerfile - Imagem otimizada com Python + Node.js (para mermaid-cli)
- docker-compose.yml - Configuração simplificada para deploy
- .dockerignore - Otimiza o build ignorando arquivos desnecessários
Como usar na VPS:
# Na sua VPS (Ubuntu/Debian) git clone github.com ↗ cd AI-CONSULT
# Criar arquivo .env com suas chaves cp .env.example .env nano .env
# Rodar com Docker docker-compose up -d
# Ver logs docker-compose logs -f
A aplicação vai rodar em seu-ip-vps:8888 ↗
Benefícios do Docker:
- ✅ Ambiente isolado e reproduzível
- ✅ Fácil deploy e updates
- ✅ Persistência de dados (pasta output/)
- ✅ Auto-restart em caso de falha
- ✅ Health checks automáticos
Em PT - A Fábrica de Estratégia de IA 2026
1