#!/usr/bin/env python3 """ Interface en ligne de commande pour interagir avec les agents LLM Usage: python chat.py [nom_agent] """ import sys import os import argparse from utils.agent_manager import AgentManager def main(): # Créer le parser d'arguments parser = argparse.ArgumentParser(description="Interface en ligne de commande pour interagir avec les agents LLM") parser.add_argument("agent", nargs="?", default="test", help="Nom de l'agent à utiliser (défaut: test)") parser.add_argument("--list", "-l", action="store_true", help="Lister les agents disponibles") parser.add_argument("--info", "-i", action="store_true", help="Afficher les informations détaillées des agents") # Parser les arguments args = parser.parse_args() # Vérifier si le dossier logs existe os.makedirs("logs", exist_ok=True) # Lister les agents si demandé if args.list: print("\nAgents disponibles:") for agent in AgentManager.list_agents(): print(f"- {agent}") return # Afficher les infos détaillées si demandé if args.info: print("\nInformations sur les agents:") for agent_name, info in AgentManager.list_agents().items(): print(f"\n=== {agent_name} ===") print(f"Modèle: {info['model']}") print(f"Description: {info['description']}") return # Vérifier si l'agent existe agent_name = args.agent try: # Créer l'agent agent = AgentManager.create(agent_name) print(f"\nAgent '{agent_name}' initialisé (modèle: {agent.model})") print("Entrez votre message (ou 'exit' pour quitter)") # Boucle de conversation while True: print("\n> ", end="") user_input = input() if user_input.lower() in ("exit", "quit", "q", "bye"): print("Au revoir!") break if not user_input.strip(): continue try: # Générer la réponse print("\nGénération en cours...\n") response = agent.generate(user_input) # Afficher la réponse print(f"\n{response}") except Exception as e: print(f"Erreur: {str(e)}") except ValueError as e: print(f"Erreur: {str(e)}") print("Utilisez --list pour voir les agents disponibles") if __name__ == "__main__": main()