MÓDULO 1.3

⚙ Setup do Ambiente

Do zero ao Jarvis funcionando: Python 3.11, Docker, conta OpenRouter, arquivo .env, wizard de configuração e primeira mensagem no Telegram.

6
Tópicos
60
Minutos
Básico
Nível
Prático
Tipo
1

🐍 Pré-requisitos e Python

O INTELECTO exige Python 3.11+ como mínimo absoluto. Versões anteriores não têm todas as features de async e tipagem que o projeto usa. As dependências são deliberadamente mínimas.

📦 requirements.txt Minimalista

httpx>=0.27.0 # HTTP async client
python-telegram-bot # Canal Telegram
cryptography # Fernet + PBKDF2
python-dotenv # .env loader
aiosqlite # SQLite async
# Nada mais. Zero frameworks.
1

python3 --version

Deve retornar Python 3.11 ou superior

2

python3 -m venv .venv && source .venv/bin/activate

Sempre use venv para isolamento

3

pip install -r requirements.txt

Instala apenas as 5 dependências necessárias

2

🔑 Conta OpenRouter

O OpenRouter é a escolha padrão para o INTELECTO porque resolve o problema de vendor lock-in com uma elegância cirúrgica: uma chave de API dá acesso a 100+ modelos, e mudar de modelo é apenas trocar uma string.

🎯 Por que OpenRouter?

  • 100+ modelos: GPT-4o, Claude 3.5, Mistral, Llama 3, Gemini — todos com uma chave
  • Billing unificado: Um cartão, uma fatura, visibilidade de custo por modelo
  • Fallback automático: Se um modelo cair, você muda em segundos
  • Interface OpenAI-compatible: O mesmo código funciona sem mudanças
1

Criar conta em openrouter.ai

2

Ir em KeysCreate API Key

3

Copiar a chave (começa com sk-or-)

3

📝 Configuração do .env

O arquivo .env é a única fonte de configuração sensível. Nunca coloque chaves diretamente no código. O .env é carregado automaticamente pelo setup e NUNCA deve ir para o git.

📄 .env Exemplo Completo

# Provedor principal
OPENROUTER_API_KEY=sk-or-v1-...
MODEL_NAME=anthropic/claude-3.5-sonnet

# Canal Telegram
TELEGRAM_BOT_TOKEN=1234567890:AAF...
TELEGRAM_ALLOWED_USERS=123456789

# Configurações do agente
MAX_ROUNDS=5
WORKSPACE_DIR=./workspace
LOG_LEVEL=INFO

Regra Crítica de Segurança

O .env deve estar no .gitignore. Verifique sempre antes de fazer commit. Uma chave de API exposta no GitHub pode gerar faturas de centenas de dólares em horas — isso acontece frequentemente com bots de scan automatizados.

4

🧙 O Wizard de Setup

O setup.py é um wizard interativo que faz as perguntas certas e configura tudo automaticamente. Ele cria os arquivos necessários, valida as credenciais e garante que nada obrigatório seja esquecido.

💬 Perguntas do Wizard

$ python setup.py
? Qual canal usar? [telegram/discord/cli]: telegram
? Usar Docker ou nativo? [docker/native]: native
? Provedor de LLM? [openrouter/ollama]: openrouter
? Modelo padrão?: anthropic/claude-3.5-sonnet
? Nome do seu assistente?: Atlas
✓ .env criado
✓ workspace/ inicializado
✓ ~/.intelecto/ criado
✓ Setup completo! Execute: python main.py
5

🐳 Docker vs Nativo

A escolha entre Docker e nativo afeta seu fluxo de trabalho. Para desenvolvimento, nativo é mais ágil. Para produção, Docker Compose garante reprodutibilidade e facilita o monitoramento.

🐍 Modo Nativo

  • Debug instantâneo com pdb/breakpoint
  • Reload automático com watchdog
  • Acesso direto ao filesystem
  • Depende do ambiente local
python main.py

🐳 Modo Docker

  • Isolamento total do ambiente
  • Deploy reproduzível em qualquer servidor
  • Restart automático com --restart unless-stopped
  • Overhead de build e startup
docker compose up -d
6

📱 Primeira Mensagem no Telegram

O momento de verdade. Se a primeira mensagem funcionar, toda a stack está correta: canal conectado, provedor respondendo, memória inicializada e workspace carregado.

1

Criar Bot no BotFather

Abrir Telegram → BotFather → /newbot → seguir instruções → copiar o token que começa com números seguidos de :

2

Obter seu User ID

Enviar /start para @userinfobot no Telegram. Copiar o número retornado e colocar em TELEGRAM_ALLOWED_USERS.

3

Iniciar o INTELECTO

python main.py — aguardar "Bot iniciado. Aguardando mensagens..."

4

Enviar "Olá" e aguardar

O Jarvis vai responder com sua personalidade do SOUL.md. Se responder, parabéns — você tem um Jarvis funcionando.

💡 Smoke Test Checklist

  • Bot está rodando sem erros no terminal
  • Mensagem foi recebida (aparecer no log)
  • LLM foi chamado (custo no OpenRouter)
  • Resposta chegou no Telegram
  • audit.log tem o registro da interação

Resumo do Módulo 1.3

Python 3.11+ — 5 dependências mínimas, zero frameworks de IA
OpenRouter — 100+ modelos, billing unificado, sem vendor lock-in
.env seguro — chaves fora do código, no .gitignore obrigatório
Wizard de setup — perguntas guiadas, configuração automática e validação
Docker vs nativo — nativo para dev, Docker Compose para produção
Primeira mensagem — smoke test que valida toda a stack de ponta a ponta

Próxima Trilha:

Trilha 2 — Identidade e Canais: SOUL.md, AIEOS, Telegram, WhatsApp e memória SQLite