
🐢 Bibliothèque open source d'évaluation et de test pour agents LLM
[!IMPORTANT] Giskard v3 est une réécriture complète conçue pour les tests dynamiques et multi-tours des agents IA. Cette version abandonne les dépendances lourdes pour une meilleure efficacité tout en introduisant un scanner de vulnérabilités IA plus puissant et une évaluation RAG améliorée — désormais inclus nativement dans
giskard-scan(bêta), sans dépendance à la v2. Seul l'ancien scan pour les modèles tabulaires/ML reste exclusif à la v2. Giskard v2 reste disponible mais n'est plus activement maintenu. Suivez les progrès → Lire l'annonce v3 · Feuille de route
pip install giskard # checks (+ agents, llm, core)
pip install "giskard[scan]" # + vulnerability / quality scan
pip install "giskard[openai]" # provider SDK for LLM judges / generators
Nécessite Python 3.12+.
| Extras | Ajoute |
|---|---|
Télémétrie : analyses agrégées facultatives via giskard-core. Aucun prompt ni résultat n'est envoyé.
Désactivez-la avant d'importer Giskard : export DO_NOT_TRACK=1 ou export GISKARD_TELEMETRY_DISABLED=1.
Détails : giskard-core README.
Giskard est une bibliothèque Python open-source pour tester et évaluer les systèmes agentiques. L'architecture v3 est un ensemble modulaire de paquets ciblés — chacun ne comportant que les dépendances dont il a besoin — construits de zéro pour englober n'importe quoi : un LLM, un agent en boîte noire ou un pipeline multi-étapes.
Ces derniers s'appuient sur trois bibliothèques fondamentales — giskard-core (utilitaires partagés et télémétrie), giskard-llm (routage LLM indépendant du fournisseur) et giskard-agents (orchestration d'agents et de workflows) — qui sont installées automatiquement et rarement utilisées directement.
pip install giskard-checks
Giskard Checks est une bibliothèque légère pour créer des évaluations (evals) qui testent les systèmes basés sur LLM — des assertions simples aux évaluations LLM-as-judge. Contrairement aux tests unitaires traditionnels, les evals sont conçues pour des sorties non déterministes où la même entrée peut produire différentes réponses valides.
Utilisez Giskard Checks pour :
Les évaluations intégrées incluent la correspondance de chaînes, les comparaisons, les regex, la similarité sémantique et les contrôles LLM-as-judge (Groundedness, Conformity, LLMJudge).
(inputs) -> outputs (éventuellement avec trace)giskard.agents.Generator est un client LLM pour les workflows/juges — pas la même chose que les générateurs d'entrée giskard.checks (LLMGenerator) qui synthétisent des messages utilisateur.
import asyncio
from giskard.checks import Scenario, Groundedness
def get_answer(inputs: str) -> str:
return "Paris" # replace with your model / agent
async def main() -> None:
scenario = (
Scenario("test_france_capital")
.interact(inputs="What is the capital of France?", outputs=get_answer)
.check(
Groundedness(
name="answer is grounded",
context="France is in Western Europe. Its capital is Paris.",
)
)
)
result = await scenario.run()
result.print_report()
asyncio.run(main())
Groundedness est un juge LLM — installez un extra fournisseur (par ex. pip install "giskard[openai]") et définissez la clé API correspondante. Modèle par défaut : openai/gpt-4o-mini.
Consultez la documentation complète pour Suites, LLMJudge, les scénarios multi-tours, etc.
pip install "giskard[scan]" # or: pip install giskard-scan
Giskard Scan est la couche de red teaming et de scan de vulnérabilités pour les systèmes agentiques. Il génère automatiquement des suites de tests adverses à partir d'une description en langage naturel de votre agent, couvrant l'injection de prompt, les contenus nuisibles, les stéréotypes, la désinformation, et plus encore.
Utilisez Giskard Scan pour :
ScenarioGenerator à generate_suite, ou enregistrez-les sur vulnerability_suite_generator_registryimport asyncio
from giskard.scan import vulnerability_scan
async def my_agent(inputs: str) -> str:
# Replace with your agent / model call
return f"Echo: {inputs}"
async def main() -> None:
await vulnerability_scan(
target=my_agent,
description="A customer support chatbot for an e-commerce platform.",
languages=["en"],
)
asyncio.run(main())
Les générateurs de scan nécessitent également un extra fournisseur LLM et une clé API (comme pour les juges Checks ci-dessus).
Giskard v2 incluait Scan (détection automatique des vulnérabilités) et RAGET (génération de jeux de test pour l'évaluation RAG).
Pour les agents LLM, les deux sont remplacés dans la v3 par giskard-scan : utilisez vulnerability_scan à la place du scan LLM v2, et quality_scan (avec KnowledgeBase) à la place de RAGET.
La v3 fonctionne aussi avec les modèles ML — enveloppez-en un comme cible et évaluez-le avec giskard-checks ou giskard-scan. Ce que couvrent les exemples ci-dessous, c'est le scan tabulaire automatique exclusif à la v2 — la suite de détecteurs qui analyse un giskard.Model + giskard.Dataset pour détecter automatiquement les problèmes de performance, de biais et de robustesse — ainsi que la suite de tests ML giskard.testing et le Giskard Hub. Ceux-ci ne sont pas prévus pour la v3.
pip install "giskard[llm]>2,<3"
Enveloppez votre modèle et lancez le scan :
import giskard
import pandas as pd
# Replace my_llm_chain with your actual LLM chain or model inference logic
def model_predict(df: pd.DataFrame):
"""The function takes a DataFrame and must return a list of outputs (one per row)."""
return [my_llm_chain.run({"query": question}) for question in df["question"]]
giskard_model = giskard.Model(
model=model_predict,
model_type="text_generation",
name="My LLM Application",
description="A question answering assistant",
feature_names=["question"],
)
scan_results = giskard.scan(giskard_model)
display(scan_results)
Générez automatiquement des questions, des réponses de référence et du contexte à partir de votre base de connaissances :
import pandas as pd
from giskard.rag import generate_testset, KnowledgeBase
# Load your knowledge base documents
df = pd.read_csv("path/to/your/knowledge_base.csv")
knowledge_base = KnowledgeBase.from_pandas(df, columns=["column_1", "column_2"])
testset = generate_testset(
knowledge_base,
num_questions=60,
language="en",
agent_description="A customer support chatbot for company X",
)
Nous accueillons les contributions de la communauté IA ! Lisez ce guide pour commencer, et rejoignez notre communauté dynamique sur Discord.
Suivez les progrès et partagez vos retours : Annonce v3 · Feuille de route
🌟 Laissez-nous une étoile, cela aide le projet à être découvert par d'autres et nous motive à créer d'excellents outils open-source ! 🌟
❤️ Si vous trouvez notre travail utile, pensez à nous sponsoriser sur GitHub. Avec un sponsoring mensuel, vous pouvez obtenir un badge de sponsor, afficher votre entreprise dans ce readme et faire prioriser vos rapports de bugs. Nous proposons également un sponsoring ponctuel si vous souhaitez que nous participions à un projet de conseil, que nous animions un atelier ou que nous donnions une conférence dans votre entreprise.
giskard-checks et dépendances |
scan | giskard-scan |
openai / anthropic / … | SDK fournisseurs (voir dépendances optionnelles dans pyproject.toml) |
| Statut | Paquet | Description |
|---|
| ✅ Bêta | giskard-checks | Tests et évaluation — API de scénarios, contrôles intégrés, LLM-as-judge |
| ✅ Bêta | giskard-scan | Scanner de vulnérabilités d'agents + évaluation RAG/qualité — red teaming, injection de prompt, jailbreaks et contenus nuisibles (vulnerability_scan, successeur du scan v2), plus évaluation de la qualité de la base de connaissances (quality_scan, successeur de RAGET v2) |