Retour aux mises Ă  jour
New releaseSep 15, 2026

giskard-oss giskard-checks/v1.0.4

🐱 BibliothĂšque open source d'Ă©valuation et de test pour agents LLM

Partager

giskardlogo giskardlogo

Évaluations, Red Teaming et GĂ©nĂ©ration de Tests pour les SystĂšmes Agentiques

Modulaire, Léger, Dynamique et Async-first

GitHub release License Downloads CI Giskard on Discord

Documentation ‱ Site web ‱ CommunautĂ©


[!IMPORTANT] Giskard v3 est une réécriture complĂšte conçue pour les tests dynamiques 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 tous deux inclus nativement dans giskard-scan, sans dĂ©pendance Ă  la v2. Seul l'ancien scan pour les modĂšles tabulaire/ML reste exclusif Ă  la v2. Giskard v2 reste disponible mais n'est plus activement maintenu. Suivez la progression → Lire l'annonce de la v3 · Feuille de route

Installation

pip install giskard           # checks (+ agents, llm, core)
pip install "giskard[scan]"   # + scan de vulnérabilité / qualité
pip install "giskard[openai]" # SDK fournisseur pour les juges / générateurs LLM

Nécessite Python 3.12+.

ExtraAjoute
(aucun)giskard-checks et dépendances
scangiskard-scan
openai / anthropic / 
SDK fournisseurs (voir les dépendances optionnelles dans pyproject.toml)

Télémétrie : analyses agrégées optionnelles via giskard-core. Aucun prompt ni sortie n'est envoyé. Désactivation 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 portant que les dĂ©pendances dont il a besoin — construits de zĂ©ro pour encapsuler n'importe quoi : un LLM, un agent boĂźte noire, ou un pipeline multi-Ă©tapes.

StatutPaquetDescription
✅ Stablegiskard-checksTests et Ă©valuation — API de scĂ©narios, checks intĂ©grĂ©s, LLM-as-judge
✅ Stablegiskard-scanScanner de vulnĂ©rabilitĂ©s d'agents + Ă©valuation RAG/qualitĂ© — red teaming, injection de prompts, jailbreaks et contenus nuisibles (vulnerability_scan, successeur du Scan v2), plus Ă©valuation de la qualitĂ© de la base de connaissances (quality_scan, successeur du RAGET v2)

Ces paquets reposent 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.

Giskard Checks — crĂ©er et appliquer des Ă©valuations pour tester les agents

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 Ă©valuations 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 :

  • DĂ©tecter les rĂ©gressions — vĂ©rifier que votre systĂšme se comporte toujours correctement aprĂšs des modifications
  • Valider la qualitĂ© RAG — vĂ©rifier que les rĂ©ponses sont fondĂ©es sur le contexte rĂ©cupĂ©rĂ©
  • Appliquer les rĂšgles de sĂ©curitĂ© — garantir que les sorties respectent vos politiques de contenu
  • Évaluer les agents multi-tours — tester des conversations complĂštes, pas seulement des Ă©changes isolĂ©s

Les évaluations intégrées incluent la correspondance de chaßnes, les comparaisons, les expressions réguliÚres, la similarité sémantique et les checks LLM-as-judge (Groundedness, Conformity, LLMJudge).

Concepts

  • Cible — votre systĂšme sous test : tout appelable synchrone/asynchrone (entrĂ©es) -> sorties (optionnellement avec trace)
  • ScĂ©nario — une Ă©valuation : interactions + checks
  • Check — assertion ou juge LLM sur la trace
  • Suite — plusieurs scĂ©narios exĂ©cutĂ©s ensemble

giskard.agents.Generator est un client LLM pour les workflows/juges — Ă  ne pas confondre avec les gĂ©nĂ©rateurs d'entrĂ©es de giskard.checks (LLMGenerator) qui synthĂ©tisent les messages utilisateur.

Démarrage rapide

import asyncio
from giskard.checks import Scenario, Groundedness


def get_answer(inputs: str) -> str:
    return "Paris"  # remplacez par votre modĂšle / 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 les Suites, LLMJudge, les scénarios multi-tours, et plus encore.


Giskard Scan — scanner de vulnĂ©rabilitĂ©s pour les agents IA

pip install "giskard[scan]"   # ou : 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 adversariales à partir d'une description en langage naturel de votre agent, couvrant l'injection de prompts, les contenus nuisibles, les stéréotypes, la désinformation, et plus encore.

Utilisez Giskard Scan pour :

  • Faire du red teaming sur votre agent — gĂ©nĂ©rer automatiquement des entrĂ©es adversariales couvrant les catĂ©gories de menaces du Top-10 OWASP LLM
  • ExĂ©cuter des sondes d'injection de prompts — jeu de donnĂ©es intĂ©grĂ© de payloads d'injection prĂȘts Ă  l'emploi
  • Étendre avec des gĂ©nĂ©rateurs personnalisĂ©s — passez vos propres instances ScenarioGenerator Ă  generate_suite, ou enregistrez-les sur vulnerability_suite_generator_registry

Démarrage rapide

import asyncio
from giskard.scan import vulnerability_scan


async def my_agent(inputs: str) -> str:
    # Remplacez par votre appel agent / modĂšle
    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 les juges Checks ci-dessus).

Vous cherchez Giskard v2 ?

Giskard v2 incluait Scan (détection automatique de vulnérabilités) et RAGET (génération de jeux de tests 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 — encapsulez-en un comme cible et Ă©valuez-le avec giskard-checks ou giskard-scan. Ce que couvrent les exemples ci-dessous est le scan tabulaire automatique exclusif Ă  la v2 — la suite de dĂ©tecteurs qui inspecte 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"

Scan — dĂ©tecter automatiquement les problĂšmes de performance, de biais et de sĂ©curitĂ©

Encapsulez votre modĂšle et lancez le scan :

import giskard
import pandas as pd


# Remplacez my_llm_chain par votre logique réelle de chaßne LLM ou d'inférence de modÚle
def model_predict(df: pd.DataFrame):
    """La fonction prend un DataFrame et doit retourner une liste de sorties (une par ligne)."""
    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)

Scan Example

RAGET — gĂ©nĂ©rer des jeux de donnĂ©es d'Ă©valuation pour les applications RAG

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

# Chargez vos documents de base de connaissances
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",
)

RAGET Example

Documentation complĂšte v2

👋 CommunautĂ©

Nous accueillons volontiers les contributions de la communauté IA ! Lisez ce guide pour commencer, et rejoignez notre communauté florissante sur Discord.

Suivez la progression 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, merci de considĂ©rer 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, animions un atelier, ou donnions une confĂ©rence dans votre entreprise.

Catégories