Un framework d'évaluation complet pour tester les modèles de langage sur le benchmark juridique français Les Audits-Affaires. Évalue les modèles sur 5 catégories de compétences juridiques en utilisant le dataset legmlai/les-audits-affaires.
pip install -e .# Évaluer OpenAI GPT-4o avec évaluateur Azure OpenAI
export EXTERNAL_PROVIDER=openai
export EXTERNAL_MODEL=gpt-4o
export OPENAI_API_KEY=votre_cle_openai
export AZURE_OPENAI_API_KEY=votre_cle_azure
export AZURE_OPENAI_ENDPOINT=votre_endpoint_azure
lae-eval run --max-samples 10Fournisseurs Externes :
# OpenAI
export EXTERNAL_PROVIDER=openai
export EXTERNAL_MODEL=gpt-4o
export OPENAI_API_KEY=votre_cle
# Mistral
export EXTERNAL_PROVIDER=mistral
export EXTERNAL_MODEL=mistral-large-latest
export MISTRAL_API_KEY=votre_cle
# Claude
export EXTERNAL_PROVIDER=claude
export EXTERNAL_MODEL=claude-3-5-sonnet-20241022
export ANTHROPIC_API_KEY=votre_cle
# Gemini
export EXTERNAL_PROVIDER=gemini
export EXTERNAL_MODEL=gemini-1.5-pro
export GOOGLE_API_KEY=votre_cleModèles Locaux :
export MODEL_ENDPOINT=http://localhost:8000/generate
export MODEL_NAME=nom_de_votre_modeleAzure OpenAI (Par défaut) :
export AZURE_OPENAI_API_KEY=votre_cle
export AZURE_OPENAI_ENDPOINT=votre_endpointÉvaluateurs Alternatifs :
# OpenAI comme évaluateur
export EVALUATOR_PROVIDER=openai
export EVALUATOR_MODEL=gpt-4o
export EVALUATOR_OPENAI_API_KEY=votre_cle
# Mistral comme évaluateur
export EVALUATOR_PROVIDER=mistral
export EVALUATOR_MODEL=mistral-large-latest
export EVALUATOR_MISTRAL_API_KEY=votre_cle
# Claude comme évaluateur
export EVALUATOR_PROVIDER=claude
export EVALUATOR_MODEL=claude-3-5-sonnet-20241022
export EVALUATOR_ANTHROPIC_API_KEY=votre_cle
# Gemini comme évaluateur
export EVALUATOR_PROVIDER=gemini
export EVALUATOR_MODEL=gemini-1.5-pro
export EVALUATOR_GOOGLE_API_KEY=votre_cle
# Modèle local comme évaluateur
export EVALUATOR_PROVIDER=local
export EVALUATOR_ENDPOINT=http://localhost:8001/generate# Évaluation complète (2 658 échantillons)
lae-eval run
# Échantillons limités
lae-eval run --max-samples 100
# Mode synchrone (plus stable)
lae-eval run --sync
# Endpoint chat pour modèles locaux
lae-eval run --chat
# Répertoire de sortie personnalisé
lae-eval run --output-dir resultats_personnalises# Tester la connexion au modèle
lae-eval test-model
# Tester la connexion à l'évaluateur
lae-eval test-evaluator
# Afficher la configuration actuelle
lae-eval infograph TD
A[Dataset: 2 658 Questions Juridiques] --> B[Modèle à Évaluer]
B --> C[Réponse Structurée]
C --> D[Évaluateur LLM]
D --> E[Scores: 5 Catégories]
E --> F[Résultats: JSON/Excel/Rapports]
style A fill:#e3f2fd
style B fill:#e8f5e8
style C fill:#fff3e0
style D fill:#f3e5f5
style E fill:#fce4ec
style F fill:#e1f5fe
Les modèles doivent répondre avec cette structure :
[Analyse et raisonnement...]
• Action Requise: [action spécifique] parce que [référence légale]
• Délai Legal: [délai] parce que [référence légale]
• Documents Obligatoires: [documents requis] parce que [référence légale]
• Impact Financier: [coûts/frais] parce que [référence légale]
• Conséquences Non-Conformité: [risques] parce que [référence légale]
- Action Requise - Actions légales nécessaires
- Délai Legal - Échéances et délais légaux
- Documents Obligatoires - Documentation obligatoire
- Impact Financier - Implications financières
- Conséquences Non-Conformité - Conséquences du non-respect
Chaque catégorie notée de 0 à 100 avec justifications détaillées.
evaluation_results.json- Résultats détaillés avec scores et justificationsevaluation_summary.csv- Statistiques agrégéesevaluation_report.xlsx- Rapport Excel multi-feuilles avec visualisationsscore_distribution.png- Graphiques de distribution des scoresevaluation.log- Logs d'exécution détaillés
- Score Global - Moyenne de toutes les catégories
- Scores par Catégorie - Performance individuelle par domaine juridique
- Qualité des Réponses - Conformité du format et complétude
- Statistiques de Traitement - Temps et taux d'erreur
Erreurs de Connexion API :
# Vérifier les identifiants
lae-eval info
env | grep -E "(API_KEY|ENDPOINT)"
# Tester avec un échantillon minimal
lae-eval run --max-samples 1Problèmes de Modèle Local :
# Tester l'endpoint manuellement
curl -X POST http://localhost:8000/generate \
-H "Content-Type: application/json" \
-d '{"prompt": "Test", "max_new_tokens": 100}'
# Essayer l'endpoint chat
lae-eval run --chatProblèmes de Performance :
# Réduire la concurrence
export BATCH_SIZE=5
export CONCURRENT_REQUESTS=10
# Utiliser le mode synchrone
lae-eval run --syncexport LOG_LEVEL=DEBUG
lae-eval run --max-samples 1
# Vérifier evaluation.log pour les informations détailléesSource : legmlai/les-audits-affaires sur HuggingFace
- 2 658 scénarios de droit des affaires français
- Questions juridiques réelles de divers contextes d'entreprise
- Ground truth validée par des experts sur 5 catégories juridiques
- Couverture complète du droit commercial français
- Guide de Versioning Automatique - Système de release automatique avec Conventional Commits
- Fournisseurs Externes - Configuration des différents modèles et évaluateurs
- Historique des Modifications - Changelog détaillé des versions
git clone <repository-url>
cd les-audits-affaires-eval-harness
python -m venv venv
source venv/bin/activate
pip install -e ".[dev]"pytest tests/
black src/ tests/
isort src/ tests/
mypy src/Licence MIT - voir le fichier LICENSE pour les détails.
- Consultez ce README pour les solutions courantes
- Lancez
lae-eval infopour vérifier la configuration - Testez avec
--max-samples 1d'abord - Vérifiez
evaluation.logpour les messages d'erreur détaillés - Ouvrez une issue si les problèmes persistent
Le script scripts/laal_pipeline.py permet de traiter automatiquement les requêtes en attente (dataset legmlai/laal-requests) puis de publier les résultats dans legmlai/laal-results.
- Authentification HuggingFace :
export HF_TOKEN=<votre_token_hf>- Définir la cible à évaluer :
• Modèle hébergé (OpenAI, Mistral, Claude, Gemini, …)
export EXTERNAL_PROVIDER=openai # openai | mistral | claude | gemini
export EXTERNAL_MODEL=gpt-4o # identifiant du modèle chez le provider• Modèle local
export MODEL_ENDPOINT=http://localhost:8000/generate
export MODEL_NAME=mon_modele- (Optionnel) Tokens dédiés pour le push des datasets :
export HF_TOKEN_SUMMARY_DATASETS=<token_write_datasets>
export HF_TOKEN_LEADERBOARD_RESULTS=<token_write_leaderboard>- Lancer le pipeline :
# Traiter toutes les requêtes en attente
python scripts/laal_pipeline.py requests
# Traiter au plus 5 requêtes
python scripts/laal_pipeline.py requests --max 5
# Exécuter en mode observation (aucun push)
python scripts/laal_pipeline.py requests --dry-runLe pipeline se charge de :
- exécuter l'évaluation pour chaque requête,
- re-évaluer en lot les échantillons échoués,
- pousser les scores et le jeu de données résumé,
- mettre à jour le statut de la requête et le leaderboard.