π Prerequisites and Python
INTELECTO requires Python 3.11+ as the absolute minimum. Earlier versions lack some of the async and typing features the project uses. The dependencies are deliberately minimal.
π¦ Minimal requirements.txt
python3 --version
Must return Python 3.11 or higher
python3 -m venv .venv && source .venv/bin/activate
Always use venv for isolation
pip install -r requirements.txt
Installs only the 5 required dependencies
π OpenRouter Account
O OpenRouter is the default choice for INTELECTO because it solves the vendor lock-in problem with surgical elegance: one API key provides access to 100+ models, and changing models is just a matter of swapping a string.
π― Why OpenRouter?
- β’100+ models: GPT-4o, Claude 3.5, Mistral, Llama 3, Geminiβall with one key
- β’Unified billing: One card, one bill, cost visibility by model
- β’Automatic fallback: If a model goes down, you can switch in seconds
- β’OpenAI-compatible interface: The same code works without changes
Create an account on openrouter.ai
Go to Keys β Create API Key
Copy the key (starts with sk-or-)
π .env Configuration
The file .env is the only source of sensitive configuration. Never put keys directly in the code. .env is loaded automatically by setup and must NEVER be committed to git.
π Complete .env Example
β Critical Security Rule
O .env must be in the .gitignore. Always check before committing. An API key exposed on GitHub can generate bills of hundreds of dollars in hoursβthis happens often with automated scanning bots.
π§ The Setup Wizard
O setup.py is an interactive wizard that asks the right questions and configures everything automatically. It creates the necessary files, validates credentials, and ensures nothing required is overlooked.
π¬ Wizard Questions
π³ Docker vs Native
The choice between Docker and native affects your workflow. For development, native is more agile. For production, Docker Compose ensures reproducibility and makes monitoring easier.
π Native Mode
- βInstant debugging with pdb/breakpoint
- βAutomatic reload with watchdog
- βDirect filesystem access
- βDepends on the local environment
π³ Docker Mode
- βComplete environment isolation
- βReproducible deploy on any server
- βAutomatic restart with --restart unless-stopped
- βBuild and Startup Overhead
π± First Message on Telegram
The moment of truth. If the first message works, the entire stack is correct: channel connected, provider responding, memory initialized, and workspace loaded.
Create a Bot in BotFather
Open Telegram β BotFather β /newbot β follow the instructions β copy the token that starts with numbers followed by :
Get Your User ID
Send /start to @userinfobot in Telegram. Copy the returned number and put it in TELEGRAM_ALLOWED_USERS.
Start INTELECTO
python main.py β wait for "Bot iniciado. Aguardando mensagens..."
Send βHelloβ and wait
Jarvis will respond with the personality defined in its SOUL.md. If it responds, congratulations β you have a working Jarvis.
π‘ Smoke Test Checklist
- βBot running without errors in the terminal
- βMessage was received (appears in the log)
- βLLM was called (cost on OpenRouter)
- βResponse arrived on Telegram
- βaudit.log contains the interaction record
β Module 1.3 Summary
Next Learning Path:
Track 2 β Identity and Channels: SOUL.md, AIEOS, Telegram, WhatsApp, and SQLite memory