Initial commit
This commit is contained in:
207
geniusia2/QWEN3_VL_ACTIVATION.md
Normal file
207
geniusia2/QWEN3_VL_ACTIVATION.md
Normal file
@@ -0,0 +1,207 @@
|
||||
# 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é
|
||||
|
||||
```bash
|
||||
# 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é
|
||||
|
||||
```bash
|
||||
ollama list
|
||||
|
||||
# Devrait afficher:
|
||||
# NAME ID SIZE
|
||||
# qwen3-vl:8b ... ~8GB
|
||||
```
|
||||
|
||||
### 3. Tester le modèle
|
||||
|
||||
```bash
|
||||
ollama run qwen3-vl:8b "Décris cette image"
|
||||
# (Coller une image)
|
||||
```
|
||||
|
||||
### 4. Lancer l'application et observer
|
||||
|
||||
```bash
|
||||
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
|
||||
|
||||
```bash
|
||||
# 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** : `ollama` visible
|
||||
|
||||
## Fallback Automatique
|
||||
|
||||
Si Qwen3-VL échoue (Ollama arrêté, erreur, timeout), le système utilise un fallback :
|
||||
|
||||
```python
|
||||
# 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 :
|
||||
|
||||
```python
|
||||
# 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 :
|
||||
```bash
|
||||
# Le système utilisera automatiquement le fallback
|
||||
pkill ollama
|
||||
```
|
||||
|
||||
## Logs
|
||||
|
||||
Les appels à Qwen3-VL sont loggés dans `data/logs/` :
|
||||
|
||||
```json
|
||||
{
|
||||
"action": "llm_generation",
|
||||
"prompt": "Analyse ces 3 captures...",
|
||||
"response": "Rafraîchir la page",
|
||||
"timestamp": "2025-11-17T..."
|
||||
}
|
||||
```
|
||||
Reference in New Issue
Block a user