#!/usr/bin/env python3

import json
import os
import sys
from agents.agent_report_generator import AgentReportGenerator
from llm_classes.ollama import Ollama  # Pour avoir une instance LLM

def test_tableau_qr():
    """Test de la génération du tableau questions/réponses"""
    
    # Créer un exemple d'échanges
    echanges = [
        {
            "date": "2023-01-10",
            "emetteur": "CLIENT",
            "type": "Question",
            "contenu": "Bonjour, j'ai un problème avec l'activation de mon logiciel. Il me demande un code que je n'ai plus."
        },
        {
            "date": "2023-01-11",
            "emetteur": "SUPPORT",
            "type": "Réponse",
            "contenu": "Bonjour, pouvez-vous nous fournir votre numéro de licence qui se trouve sur votre contrat?"
        },
        {
            "date": "2023-01-12",
            "emetteur": "CLIENT",
            "type": "Question",
            "contenu": "J'ai regardé sur mon contrat et le numéro est BRG-12345. Mais l'application ne l'accepte pas. Y a-t-il un format particulier à respecter?"
        },
        {
            "date": "2023-01-12",
            "emetteur": "CLIENT",
            "type": "Information technique",
            "contenu": "Je suis sur Windows 10 version 21H2."
        },
        {
            "date": "2023-01-13",
            "emetteur": "SUPPORT",
            "type": "Réponse",
            "contenu": "Le format correct est BRG-xxxxx-yyyy où yyyy correspond à l'année de votre contrat. Essayez avec BRG-12345-2023."
        },
        {
            "date": "2023-01-14",
            "emetteur": "CLIENT",
            "type": "Question",
            "contenu": "Cela ne fonctionne toujours pas. Y a-t-il une autre solution?"
        }
    ]
    
    # Créer une instance de l'agent
    llm = Ollama("llama2")  # Ollama est léger pour le test
    agent = AgentReportGenerator(llm)
    
    # Tester la méthode _generer_tableau_questions_reponses
    tableau = agent._generer_tableau_questions_reponses(echanges)
    print("TABLEAU QUESTIONS/RÉPONSES:")
    print(tableau)
    
    # Tester avec un long contenu pour voir la synthèse
    long_echange = [
        {
            "date": "2023-01-10",
            "emetteur": "CLIENT",
            "type": "Question",
            "contenu": "Bonjour, j'ai un problème très complexe avec l'activation de mon logiciel. " * 10
        },
        {
            "date": "2023-01-11",
            "emetteur": "SUPPORT",
            "type": "Réponse",
            "contenu": "Bonjour, nous avons bien reçu votre demande et nous allons vous aider à résoudre ce problème. " * 10
        }
    ]
    
    tableau_long = agent._generer_tableau_questions_reponses(long_echange)
    print("\nTABLEAU AVEC CONTENU LONG (SYNTHÉTISÉ):")
    print(tableau_long)
    
    # Tester avec une question sans réponse
    sans_reponse = [
        {
            "date": "2023-01-10",
            "emetteur": "CLIENT",
            "type": "Question",
            "contenu": "Bonjour, j'ai un problème avec mon logiciel. Pouvez-vous m'aider?"
        }
    ]
    
    tableau_sans_reponse = agent._generer_tableau_questions_reponses(sans_reponse)
    print("\nTABLEAU AVEC QUESTION SANS RÉPONSE:")
    print(tableau_sans_reponse)
    
    print("\nTest terminé avec succès!")

if __name__ == "__main__":
    test_tableau_qr() 