# Installer les dépendances
pip install -r nanobot-manager/requirements.txt
# Lancer l'application
cd nanobot-manager
python3 app.pyLe serveur sera accessible à http://localhost:8899
- Sélectionner un provider dans la liste
- Choisir un modèle Ollama ou saisir manuellement
- Cliquer "Sauvegarder"
- Vérifier le message de succès
- Vérifier le badge "Config actuelle" mis à jour
- Cliquer sur l'onglet "🔧 Coder"
- Saisir un provider (ex:
custom) - Saisir un modèle (ex:
qwen3.5:9b-16k) - Sélectionner un contexte prédéfini (ex:
16384) - Cliquer "Sauvegarder Coder"
- Vérifier le message de succès
- Vérifier le badge mis à jour
- Sélectionner "✏️ Personnalisé..." dans la liste
- Saisir une valeur personnalisée (ex:
24000) - Cliquer "Sauvegarder Coder"
- Vérifier que la valeur est acceptée
- Cliquer sur l'onglet "👁️ Vision"
- Saisir un provider (ex:
custom) - Saisir un modèle (ex:
llava) - Sélectionner "Aucun" ou un contexte (optionnel)
- Cliquer "Sauvegarder Vision"
- Vérifier le message de succès
// Provider vide
// Error: "Modèle et provider requis"
// Modèle vide
// Error: "Modèle et provider requis"
// maxTokens invalide
// Error: "maxTokens invalide"
// maxTokens <= 0
// Error: "maxTokens doit être > 0"# Après avoir sauvegardé les configurations,
# vérifier le fichier config.json
cat /opt/stacks/nanobot/config/config.json
# Vérifier la structure:
{
"agents": {
"coder": {
"model": "qwen3.5:9b-16k",
"provider": "custom",
"maxTokens": 16384
},
"vision": {
"model": "llava",
"provider": "custom"
}
}
}curl http://localhost:8899/api/coder
# Response: {"model": "...", "provider": "...", "maxTokens": ...}curl -X POST http://localhost:8899/api/coder/update \
-H "Content-Type: application/json" \
-d '{"model": "gpt-4-turbo", "provider": "openai", "maxTokens": 32768}'
# Response: {"success": true, "message": "✅ Coder configuré: ..."}curl http://localhost:8899/api/vision
# Response: {"model": "...", "provider": "...", "maxTokens": null}curl -X POST http://localhost:8899/api/vision/update \
-H "Content-Type: application/json" \
-d '{"model": "gpt-4-vision", "provider": "openai", "maxTokens": 16384}'
# Response: {"success": true, "message": "✅ Vision configurée: ..."}- Toutes les routes API retournent du JSON valide
- Les validations rejettent les données invalides
- Les messages d'erreur sont informatifs
- Les configurations sont sauvegardées dans config.json
- maxTokens est validation (nombre, > 0)
- Les 3 onglets sont visibles
- L'onglet "Par Défaut" fonctionne comme avant
- L'onglet "Coder" charge/sauve la config
- L'onglet "Vision" charge/sauve la config
- Les dropdowns token fonctionnent
- L'option "Personnalisé" permet une saisie manuelle
- Les badges affichent la config actuelle
- Le bouton "Restart" fonctionne
- L'interface est responsive
- Les messages toast s'affichent correctement
- Les spinners s'affichent pendant le chargement
- Le thème sombre est cohérent
cd nanobot-manager
python3 app.py # Les logs s'affichent dans la console- Ouvrir DevTools (F12 ou Cmd+Shift+I)
- Aller à l'onglet "Network"
- Effectuer une action (sauvegarder config)
- Vérifier les requêtes POST/GET
- Vérifier les réponses JSON
# Créer un fichier config.json de test
mkdir -p /opt/stacks/nanobot/config/
# Ou modifier CONFIG_PATH dans app.py pour un test local
export CONFIG_PATH="./config-test.json"
python3 app.pyLes tests suivants ne sont pas critiques mais utiles:
- Interface responsive sur mobile
- Chargement < 2s pour chaque onglet
- Pas de fuite mémoire lors de multiples sauvegardes
- Toutes les routes API fonctionnent
- Configuration Coder peut être définie/mise à jour
- Configuration Vision peut être définie/mise à jour
- Vision.maxTokens est optionnel
- Les dropdowns token offrent 7+ options pour Coder
- Les dropdowns token offrent 6+ options pour Vision
- Validation côté serveur robuste
- Messages d'erreur clairs
- Config.json est mise à jour correctement
- Aucun erreur JavaScript en console
Répondez à ces questions:
- ✅ Toutes les fonctionnalités testées manuellement?
- ✅ Aucune erreur en console (F12)?
- ✅ Config.json correctement mise à jour?
- ✅ Messages d'erreur affichés clairement?
- ✅ Interface responsive testé?
Si tout est ✅, l'implémentation est prête pour:
docker compose -f compose.yaml build
docker compose -f compose.yaml up -dDernière mise à jour: 2026-03-04