IAREST / test_avis.py
Oxyb's picture
Upload 6 files
d2b9095 verified
Raw
History Blame Contribute Delete
2.43 kB
"""
Script de test pour Avis'IA Resto
Parcourt tous les avis de avis_test.csv, génère une réponse pour chacun
et affiche les résultats avec la source utilisée (llm ou fallback).
Usage local ou dans le terminal du Space :
python test_avis.py
Prérequis : la variable d'environnement MISTRAL_API_KEY doit être définie
pour tester le mode LLM. Sans elle, le script valide le mode fallback.
"""
import csv
import sys
# On importe directement les fonctions de l'application
from app import generer_reponse
def lancer_tests(fichier_csv: str = "avis_test.csv"):
resultats = {"llm": 0, "fallback": 0, "erreurs": 0}
try:
with open(fichier_csv, encoding="utf-8") as f:
lecteur = csv.DictReader(f, delimiter=";")
lignes = list(lecteur)
except FileNotFoundError:
print(f"❌ Fichier introuvable : {fichier_csv}")
sys.exit(1)
print(f"🧪 Test de {len(lignes)} avis clients\n" + "=" * 70)
for i, ligne in enumerate(lignes, start=1):
note = int(ligne["note"])
nom = ligne["nom_restaurant"]
avis = ligne["avis"]
print(f"\n--- Avis {i}/{len(lignes)} | {note}/5 étoiles ---")
print(f"CLIENT : {avis[:100]}{'...' if len(avis) > 100 else ''}")
try:
reponse, source = generer_reponse(avis, note, nom)
resultats[source] += 1
etiquette = "🤖 LLM" if source == "llm" else "📋 FALLBACK"
print(f"{etiquette} : {reponse}")
# Vérifications basiques de qualité
if not reponse.strip():
print("⚠️ ALERTE : réponse vide !")
resultats["erreurs"] += 1
if len(reponse) > 1200:
print("⚠️ ALERTE : réponse anormalement longue.")
except Exception as e:
resultats["erreurs"] += 1
print(f"❌ ERREUR : {e}")
print("\n" + "=" * 70)
print("📊 BILAN")
print(f" Réponses générées par le LLM : {resultats['llm']}")
print(f" Réponses en mode fallback : {resultats['fallback']}")
print(f" Erreurs : {resultats['erreurs']}")
if resultats["erreurs"] == 0:
print("\n✅ Tous les tests sont passés. L'application est prête pour la démo.")
else:
print("\n❌ Des erreurs sont survenues, vérifiez les logs ci-dessus.")
if __name__ == "__main__":
lancer_tests()