Eval & Guardrails LLM
DeepEval, Promptfoo, Ragas, Opik, Guardrails AI — notez chaque changement de prompt avant déploiement et détectez les régressions tôt.
Ce que contient ce pack
Ce pack rassemble les cinq outils open-source vers lesquels chaque équipe converge une fois que ses features LLM atteignent des utilisateurs réels et que « le modèle s'est dégradé cette semaine » cesse d'être une réponse tolérable. Les outils se divisent en deux moitiés : évaluation pré-déploiement (note chaque changement de prompt) et guardrails runtime (contraint ce que le modèle émet réellement).
| # | Ressource | Phase | Excelle à |
|---|---|---|---|
| 1 | DeepEval | Pré-déploiement | Tests style pytest pour sorties LLM (G-Eval, Faithfulness, hallucination) |
| 2 | Promptfoo | Pré-déploiement | Comparaisons A/B de prompts et red-team scans entre modèles |
| 3 | Ragas | Pré-déploiement | Métriques RAG-spécifiques : context precision, faithfulness, answer relevancy |
| 4 | Opik | Observabilité | Tracing production, scores eval par requête, curation de datasets |
| 5 | Guardrails AI | Runtime | Valider schéma et policies de sortie, avec retry et reasking |
La séparation compte. Eval pré-déploiement attrape la régression avant que le client la voie. Guardrails runtime attrape la régression que vous n'aviez pas prédite. Vous avez besoin des deux — eval seul rate les inputs adversariaux que vous n'avez pas samplés, guardrails seul ne dit pas quel changement de prompt a causé le drift.
Pourquoi eval est table-stakes maintenant
Trois forces ont rendu eval la différence entre équipes qui livrent et équipes bloquées :
- Les upgrades de modèle suivent l'agenda du vendor. Quand Anthropic sort Sonnet 4.7, votre prompt qui marchait sur 4.6 peut se comporter subtilement différemment. Sans suite eval, vous l'apprenez par un ticket support. Avec Promptfoo, vous lancez
promptfoo eval -c promptfooconfig.yaml --providers anthropic:claude-4.7,anthropic:claude-4.6et voyez le diff en 30 secondes. - Les prompts n'ont pas d'erreurs de compilation. Une coquille en code lève une exception. Une coquille en prompt produit une sortie plausible mais pire qui part en prod. Eval est l'étape de compilation que les prompts n'ont jamais eue.
- La qualité RAG décline silencieusement. Un nouveau doc qui est récupéré mais n'est pas vraiment pertinent baisse la qualité de réponse sans lever d'erreur. Ragas vous donne des scores de context precision et faithfulness par requête, donc vous repérez le déclin avant qu'il ne s'accumule.
Installer en une commande
# Installe le pack entier dans le projet actuel
tokrepo install pack/llm-eval-guardrails
# Ou choisissez des ressources individuelles
tokrepo install promptfoo
tokrepo install ragas
Le TokRepo CLI installe un répertoire evals/ avec cas de test exemples, un promptfooconfig.yaml, un notebook Ragas amorcé avec votre retriever, et un template rail file Guardrails AI. Snippets CI bloquent les merges sur le pass rate de la suite eval.
Pièges courants
- LLM-as-judge sans grounding. DeepEval et Ragas utilisent un modèle juge pour scorer les réponses, mais si le juge est le même modèle que le système testé, vous obtenez des scores optimistes. Utilisez une famille différente comme juge, ou pin un modèle plus fort (e.g. juger avec Claude en scorant des sorties GPT).
- Suites eval à 5 cas. Cinq exemples choisis à la main ne couvrent pas la longue traîne. Visez 50-200 cas dérivés de vrais logs production (Opik facilite ça — samplez les mauvaises sorties, étiquetez-les, promouvez vers eval set).
- Traiter Guardrails comme filtre magique. Guardrails impose la structure (JSON valide, sans profanité, conforme au schéma) — il n'attrape pas les réponses factuellement fausses mais bien formatées. Pairez avec un check faithfulness Ragas.
- Lancer eval contre le trafic production coûte. Les suites eval peuvent atteindre 5-10x votre facture LLM normale si vous rescorez chaque nuit. Cachez les embeddings, samplez votre eval set par run, ou utilisez des modèles bon marché pour l'étape juge.
- Pas d'eval pour sorties non-texte. Si votre agent émet des tool calls, évaluez la forme du tool call avec assertions structurées, pas que le texte final. Promptfoo supporte ça via hooks
transformetassertcustom.
Quand ce pack seul ne suffit pas
Pour une observabilité production complète au-delà d'Opik (percentiles de latence, tracking coût par utilisateur, analytique routing de modèles), regardez LangSmith ou Arize Phoenix — aucun n'est dans le pack car ils sont plus orchestration qu'eval. Pour les classifieurs safety (détection jailbreak, scoring prompt injection), ajoutez Llama Guard ou NVIDIA NeMo Guardrails — Guardrails AI se concentre sur la validation de sortie, pas la détection d'input adversarial. Et si votre eval a besoin d'annotation human-in-the-loop à l'échelle, Argilla ou Label Studio s'intègrent au format dataset d'Opik.
5 ressources prêtes à installer
Questions fréquentes
Le pack est-il gratuit ?
Les cinq outils sont open source sous licences permissives (Apache 2.0 ou MIT). Les coûts compute sont la variable : chaque appel eval frappe un LLM, donc une suite de 200 cas × 4 variantes prompt × 2 modèles = 1600 appels LLM par run. Cachez agressivement, samplez pour les runs nocturnes, full-run uniquement en release. Ragas et DeepEval supportent LLM-as-judge avec modèles bon marché (Haiku, gpt-4o-mini) pour garder bas le coût juge.
Comment ça se compare à LangSmith ou Braintrust ?
LangSmith et Braintrust sont des plateformes managées avec eval, observabilité et curation de datasets dans une UI. Le pack ici donne 80% des features pour $0 et auto-héberger complet. Compromis : vous câblez les composants vous-mêmes (Promptfoo pour eval, Opik pour traces, Guardrails pour runtime) au lieu d'un dashboard. Choisissez managé si votre équipe ne ferait pas d'eval autrement ; choisissez ce pack si l'effort ingénierie est moins cher que les frais par siège.
Ça fonctionnera avec Claude Code ou Cursor ?
Oui. Claude Code peut écrire des configs Promptfoo et cas de test DeepEval depuis votre spec de feature — donnez-lui la spec plus quelques prompts exemples, et il génère evals/test_*.py et promptfooconfig.yaml. Les pages de ressources TokRepo incluent des prompts subagent qui câblent ça en commande slash prompt-eval. Cursor utilise le même flux via règles custom.
Quelle différence entre Promptfoo et DeepEval ?
Promptfoo est config-driven (YAML) et excelle aux comparaisons A/B entre providers/modèles — parfait pour « doit-on passer de GPT à Claude ? ». DeepEval est code-driven (pytest) et excelle aux assertions style unit-test sur prompts individuels — parfait pour « cette réponse doit mentionner X et ne pas contenir Y ». La plupart des équipes lancent les deux : Promptfoo pour la sélection de modèle, DeepEval pour la régression de prompt.
Piège opérationnel en ajoutant Guardrails AI ?
Le reasking de Guardrails peut multiplier votre latence et coût — chaque validation échouée déclenche un autre appel LLM pour réparer la sortie. Mettez max-retry 1-2, monitorez le taux reask dans Opik (si taux >5% votre prompt lui-même est faux, pas la sortie), et préférez le mode structured output (JSON schema) sur le reasking quand le modèle sous-jacent le supporte (Claude, GPT-4o, Gemini tous le font).
12 packs · 80+ ressources sélectionnées
Découvrez tous les packs curatés sur la page d'accueil
Retour à tous les packs