130 lines
4.5 KiB
Python
Executable File
130 lines
4.5 KiB
Python
Executable File
#!/usr/bin/env python3
|
||
"""
|
||
Test manuel du Mode Assisté - Workflow complet
|
||
"""
|
||
|
||
import sys
|
||
import time
|
||
from pathlib import Path
|
||
|
||
sys.path.insert(0, str(Path(__file__).parent / "geniusia2"))
|
||
|
||
from core.orchestrator import Orchestrator
|
||
from core.learning_manager import LearningManager
|
||
from core.embeddings_manager import EmbeddingsManager
|
||
from core.llm_manager import LLMManager
|
||
from core.utils.vision_utils import VisionUtils
|
||
from core.utils.input_utils import InputUtils
|
||
from core.logger import Logger
|
||
from core.config import get_config
|
||
|
||
|
||
def main():
|
||
"""Test manuel du Mode Assisté."""
|
||
print("\n" + "="*60)
|
||
print(" 🧪 TEST MANUEL DU MODE ASSISTÉ")
|
||
print("="*60 + "\n")
|
||
|
||
# Initialiser les composants
|
||
print("📋 Initialisation des composants...")
|
||
config = get_config()
|
||
logger = Logger()
|
||
|
||
embeddings_manager = EmbeddingsManager(logger=logger)
|
||
learning_manager = LearningManager(
|
||
embeddings_manager,
|
||
logger,
|
||
config,
|
||
profiles_path="geniusia2/data/user_profiles"
|
||
)
|
||
vision_utils = VisionUtils(config)
|
||
input_utils = InputUtils(logger, config)
|
||
llm_manager = LLMManager(config, logger)
|
||
|
||
orchestrator = Orchestrator(
|
||
learning_manager=learning_manager,
|
||
vision_utils=vision_utils,
|
||
llm_manager=llm_manager,
|
||
input_utils=input_utils,
|
||
logger=logger,
|
||
config=config
|
||
)
|
||
|
||
print("✅ Orchestrator créé\n")
|
||
|
||
# Vérifier les tâches existantes
|
||
print("📊 Vérification des tâches apprises...")
|
||
|
||
# Utiliser get_all_tasks() qui retourne une liste de dicts avec métriques
|
||
task_metrics = learning_manager.get_all_tasks()
|
||
|
||
if not task_metrics:
|
||
print("❌ Aucune tâche apprise trouvée !\n")
|
||
print("💡 Pour tester le Mode Assisté, tu dois d'abord :")
|
||
print(" 1. Lancer l'application : cd geniusia2 && ./run.sh")
|
||
print(" 2. Cliquer sur 'Start'")
|
||
print(" 3. Effectuer 3 fois la même action (ex: 3 clics)")
|
||
print(" 4. Attendre la notification 'Tâche apprise'")
|
||
print(" 5. Relancer ce script\n")
|
||
return
|
||
|
||
print(f"✅ {len(task_metrics)} tâche(s) trouvée(s) :\n")
|
||
for i, task_info in enumerate(task_metrics, 1):
|
||
print(f" {i}. {task_info['task_name']}")
|
||
print(f" ID: {task_info['task_id']}")
|
||
print(f" Observations: {task_info['observation_count']}")
|
||
print(f" Confiance: {task_info['confidence_score']:.2%}")
|
||
print()
|
||
|
||
# Tester la vérification de suggestions
|
||
print("🔍 Test de vérification de suggestions...")
|
||
print(" (Ceci simule ce qui se passerait après une action utilisateur)\n")
|
||
|
||
# Appeler check_for_suggestions
|
||
orchestrator.check_for_suggestions()
|
||
|
||
# Vérifier s'il y a une suggestion
|
||
current = orchestrator.suggestion_manager.get_current_suggestion()
|
||
|
||
if current:
|
||
print("✅ Suggestion créée !")
|
||
print(f" Tâche: {current['task_name']}")
|
||
print(f" Confiance: {current['confidence']:.2%}")
|
||
print(f" Similarité: {current['similarity']:.2%}\n")
|
||
|
||
print("💡 Dans l'application, un overlay apparaîtrait maintenant")
|
||
print(" avec les options : [Entrée] Accepter | [Échap] Refuser\n")
|
||
else:
|
||
print("ℹ️ Aucune suggestion créée")
|
||
print(" Raisons possibles :")
|
||
print(" - Le contexte actuel ne correspond à aucune tâche")
|
||
print(" - La similarité est < 75%")
|
||
print(" - Pas d'action utilisateur récente\n")
|
||
|
||
print("="*60)
|
||
print(" 📝 RÉSUMÉ")
|
||
print("="*60 + "\n")
|
||
|
||
print("Le Mode Assisté fonctionne en 2 phases :\n")
|
||
print("1️⃣ APPRENTISSAGE (Mode Shadow)")
|
||
print(" - Effectue 3x la même action")
|
||
print(" - Le système crée une tâche\n")
|
||
|
||
print("2️⃣ SUGGESTIONS (Mode Assisté)")
|
||
print(" - Refais une action similaire")
|
||
print(" - Le système suggère la tâche apprise")
|
||
print(" - Un overlay apparaît avec [Entrée] / [Échap]\n")
|
||
|
||
print("⚠️ IMPORTANT :")
|
||
print(" Le Mode Assisté n'est PAS automatique dans la version actuelle.")
|
||
print(" Il faut que l'Orchestrator appelle check_for_suggestions()")
|
||
print(" après chaque action utilisateur.\n")
|
||
|
||
print("🔧 SOLUTION :")
|
||
print(" Ajouter un appel périodique à check_for_suggestions()")
|
||
print(" dans la boucle principale de l'Orchestrator.\n")
|
||
|
||
|
||
if __name__ == "__main__":
|
||
main()
|