Avant de commencer, assurez-vous d’avoir :
Créer votre compte et récupérer la clé API :
PourquoiOpenRouter ?
# Via npm
npm install -g @opencode-ai/opencode
# Ou via le script officiel
curl -fsSL https://opencode.ai/install.sh | bash
Vérification :
opencode --version
Créer le fichier de configuration :
#~/.config/opencode/config.yaml
providers:
openrouter:
api_key: ${OPENROUTER_API_KEY}
base_url: https://openrouter.ai/api/v1
default_provider: openrouter
default_model: google/gemini-2.0-flash # Frugal
Variable d’environnement :
export OPENROUTER_API_KEY="sk-or-v1-votre-clé"
Choisissez selon votre confort et intérêts :
| Option | Stack | Complexité | Repo |
|---|---|---|---|
| Minimal Python | FastAPI + SQLite | ~300 lignes | minimal-fastapi |
| Full Python | FastAPI + PostgreSQL | Réaliste | full-stack-fastapi |
| SvelteKit | SvelteKit minimal | ~800 lignes | swyxkit |
| Elixir/Phoenix | Langage non maîtrisé | Challenge | phoenix-elixir-app |
Pourquoi l’option Elixir/Phoenix ?
Travailler sur un langage/framework que vous ne connaissez pas simule un scénario réaliste : l’IA vous aide à monter en compétence rapidement sur une nouvelle stack.
# Cloner l'application choisie
git clone <repo-choisi> mon-app-demo
cd mon-app-demo
LancerOpenCode sur le projet :
cd mon-app-demo
opencode
Prompt de test :
>Analyse ce projet et explique-moi sa structure
Observations à noter :
Essayer un modèle premium :
# ~/.config/opencode/config.yaml
default_model: anthropic/claude-3.5-sonnet
Refaire le même prompt et comparer :
Comparer objectivement vos 2 modèles testés :
| Critère | Modèle A (Gemini Flash) | Modèle B (Claude Sonnet) |
|---|---|---|
| Vitesse (1-5) | ||
| Pertinence (1-5) | ||
| Précision (1-5) | ||
| Suggestions utiles (1-5) | ||
| Tokens consommés | ||
| Coût estimé | ||
| Score qualité (moyenne) |
Formule du score qualité :
Score = (Pertinence + Précision + Suggestions) / 3
Question clé : Le modèle premium justifie-t-il son prix pour cette tâche ?
Astuce : laisser tourner les agents en parallèle
# Créer une session tmux pourOpenCode
tmux new -s opencode
# LancerOpenCode
opencode
# Détacher : Ctrl+B puis D
# Revenir : tmux attach -t opencode
Pourquoi ?
À la fin de ce TP, vous devez avoir :