4.5 KiB
Activation de Qwen3-VL
Changements Effectués
Qwen3-VL est maintenant activé et utilisé dans deux endroits clés :
1. Génération de Description de Tâche
Fichier: orchestrator.py
Méthode: _generate_task_description_with_llm()
Quand un pattern est détecté (3 clics répétés), Qwen3-VL analyse les screenshots et génère une description intelligente.
Avant :
✅ Tâche créée : task_abc123
📝 Description : Tâche dans Unknown
Après :
🤖 Analyse avec Qwen3-VL...
✓ Description générée: Rafraîchir la page
✅ Tâche créée : task_abc123
📝 Description : Rafraîchir la page
Ce que Qwen3-VL reçoit :
- 3 screenshots de l'action répétée
- Contexte (fenêtre, type d'action, nombre de répétitions)
- Prompt demandant une description courte
Ce que Qwen3-VL retourne :
- Description intelligente de la tâche (ex: "Rafraîchir la page", "Ouvrir un nouvel onglet")
2. Identification d'Élément UI
Fichier: vision_analysis.py
Méthode: analyze_action()
Quand une action est analysée, Qwen3-VL identifie l'élément UI cliqué.
Avant :
element_type: "unknown"
Après :
element_type: "button"
element_description: "Bouton Rafraîchir"
Ce que Qwen3-VL reçoit :
- Screenshot de la région cliquée (ROI)
- Position du clic
- Type d'action
Ce que Qwen3-VL retourne :
- Identification de l'élément (ex: "Bouton Rafraîchir", "Icône Paramètres")
Flux Complet avec Qwen3-VL
1. Utilisateur clique 3 fois
↓
2. EventCapture détecte le pattern
↓
3. Orchestrator récupère les 3 screenshots
↓
4. Pour chaque screenshot:
├─ VisionAnalysis extrait la région cliquée
├─ 🤖 Qwen3-VL identifie l'élément: "Bouton Rafraîchir"
└─ Signature créée avec description
↓
5. 🤖 Qwen3-VL analyse les 3 actions
└─ Génère: "Rafraîchir la page"
↓
6. Tâche créée avec description intelligente
↓
7. Sauvegardée dans data/user_profiles/
Vérifier que Qwen3-VL Fonctionne
1. Vérifier qu'Ollama est lancé
# Vérifier le service
curl http://localhost:11434/api/tags
# Devrait retourner la liste des modèles
2. Vérifier que le modèle est téléchargé
ollama list
# Devrait afficher:
# NAME ID SIZE
# qwen3-vl:8b ... ~8GB
3. Tester le modèle
ollama run qwen3-vl:8b "Décris cette image"
# (Coller une image)
4. Lancer l'application et observer
cd geniusia2
./run.sh
Faire 3 clics répétés, tu devrais voir :
🎯 PATTERN DÉTECTÉ DANS ORCHESTRATOR !
============================================================
Répétitions: 3
Longueur: 1
Fenêtre: Firefox
🔍 Récupération des screenshots...
📊 Screenshots trouvés: 3
📸 Analyse de 3 actions...
🔬 Analyse action 1/3...
✓ Signature créée
🔬 Analyse action 2/3...
✓ Signature créée
🔬 Analyse action 3/3...
✓ Signature créée
✅ 3 signatures créées
🤖 Analyse avec Qwen3-VL...
✓ Description générée: Rafraîchir la page
✅ Tâche créée : task_abc123
📝 Description : Rafraîchir la page
5. Surveiller l'utilisation GPU
# Dans un autre terminal
watch -n 1 nvidia-smi
# Ou pour AMD
watch -n 1 rocm-smi
Quand Qwen3-VL analyse, tu devrais voir :
- Utilisation GPU : 60-80%
- Mémoire GPU : +8 GB utilisés
- Processus :
ollamavisible
Fallback Automatique
Si Qwen3-VL échoue (Ollama arrêté, erreur, timeout), le système utilise un fallback :
# Fallback pour la description
description = f"Tâche dans {window}"
# Fallback pour l'identification
element_type = "unknown"
L'application continue de fonctionner même sans Qwen3-VL.
Performance
Avec Qwen3-VL activé :
- Temps d'analyse : +2-3 secondes par pattern détecté
- Mémoire GPU : +8 GB
- Qualité : Descriptions beaucoup plus précises
Désactiver Qwen3-VL
Si tu veux désactiver temporairement :
# Dans orchestrator.py, ligne ~190
# Commenter l'appel au LLM:
# task_description = self._generate_task_description_with_llm(...)
task_description = f"Tâche dans {pattern.get('window', 'Unknown')}"
Ou arrêter Ollama :
# Le système utilisera automatiquement le fallback
pkill ollama
Logs
Les appels à Qwen3-VL sont loggés dans data/logs/ :
{
"action": "llm_generation",
"prompt": "Analyse ces 3 captures...",
"response": "Rafraîchir la page",
"timestamp": "2025-11-17T..."
}