llm_lab_perso/chat.py
2025-03-27 18:40:52 +01:00

76 lines
2.5 KiB
Python

#!/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()