Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
TrustworthyRAG — Un agent d'évaluation pour détecter la désinformation et l'empoisonnement des connaissances dans les systèmes de génération augmentée par récupération. | Kitploit
Outils/GitHubGitHub/gpt-laboratory/trustworthyrag
Analyse de CodeApprentissage AutomatiqueArticles et RechercheSécurité de l'IADétection d'Anomalies
GitHubgpt-laboratory/trustworthyrag

TrustworthyRAG

Un agent d'évaluation pour détecter la désinformation et l'empoisonnement des connaissances dans les systèmes de génération augmentée par récupération.

Voir le dépôt
70il y a 3 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Trustworthy RAG

Un agent d'évaluation pour détecter la désinformation et l'empoisonnement des connaissances dans les systèmes de génération augmentée par récupération.

Vue d'ensemble

Ce projet implémente le cadre Trustworthy RAG avec un agent d'évaluation intégré qui évalue la fiabilité des réponses RAG à l'aide de trois composants d'analyse complémentaires :

  • Vérificateur NLI - Vérification de la cohérence factuelle via l'inférence en langage naturel (BART-MNLI)
  • Détecteur d'empoisonnement - Détection multi-signaux de contenu adversarial (linguistique, structurel, sémantique, NLI intra/inter-documents)
  • Calculateur d'indice de confiance - Score composite pondéré combinant factualité, cohérence et sécurité face à l'empoisonnement

Le système produit un score de confiance (0-1) pour chaque réponse RAG, permettant la détection automatisée des attaques par empoisonnement des connaissances et des contenus hallucinés.

Ce dépôt constitue l'artefact de recherche de l'article de conférence ICSEA 2026 du même titre. Voir [Conference_ICSEA2026/](https://github.com/gpt-laboratory/trustworthyrag/blob/main/Conference_ICSEA2026) pour les sources LaTeX, et la section Article ci-dessous.

Architecture

User Query
    |
    v
+-------------------+
|     RETRIEVER     |   Embedding (MiniLM-L6-v2 or Snowflake Arctic Embed2) + FAISS
+--------+----------+
         |
         v
+-------------------+
|     GENERATOR     |   Llama 3.3 70B / Qwen 3.5 35B / Mistral 7B Instruct via FARMI API
+--------+----------+
         |
         v
+--------------------------------------------+
|           EVALUATION AGENT                 |
|                                            |
|  NLI Verifier    Poison Detector           |
|  (factuality)    (5 detection methods)     |
|       |                |                   |
|       v                v                   |
|     Trust Index Calculator                 |
|     T = 0.4*F + 0.35*C + 0.25*(1-P)       |
+--------------------------------------------+
         |
         v
   Answer + Trust Score + Evaluation Report

Structure du projet

src/
  retriever/              # Document retrieval (embeddings, FAISS, chunking)
  generator/              # LLM response generation (FARMI client, prompts)
  evaluation_agent/       # Core evaluation (NLI, poison detection, trust index)
  experiments/            # Experiment framework (poisoned datasets, runner)
  pipeline/               # End-to-end RAG pipeline orchestrator

tests/                    # Unit tests (78 tests, pytest)
configs/config.yaml       # All configuration parameters
figures/                  # Auto-generated charts (7 figures, 300 DPI)
run_experiment.py         # Experiment CLI (main entry point)
generate_charts.py        # Visualization generator
requirements.txt          # Python dependencies

Installation

# Create and activate virtual environment
python -m venv venv
.\venv\Scripts\Activate.ps1    # Windows PowerShell
# source venv/bin/activate     # Linux/Mac

# Install dependencies
pip install -r requirements.txt

# Configure FARMI API access (required for LLM generation)
# Copy the template and fill in your own credentials:
#   cp .env.example .env       # then edit .env and set FARMI_API_KEY
# The .env file is .gitignored - never commit it or hardcode keys in source.

Utilisation

Exécuter la suite d'expériences complète

python run_experiment.py --all

Ceci exécute toutes les expériences et génère automatiquement les graphiques :

  • Expérience principale TruthfulQA (100 échantillons, empoisonnement mixte)
  • Expériences par stratégie (100 échantillons chacune : injection, contradiction, échange d'entités, subtile)
  • Expérience sur le jeu de données FEVER (100 échantillons)
  • Étude d'ablation (5 configurations de poids, 60 échantillons chacune)

Autres options d'expérience

python run_experiment.py --quick          # Quick test (10 samples)
python run_experiment.py --samples 30     # Custom sample count
python run_experiment.py --per-strategy   # Per-strategy breakdown only
python run_experiment.py --fever          # Include FEVER dataset
python run_experiment.py --ablation       # Ablation study only
python run_experiment.py --grid           # 2x2 factorial grid (all LLM x embedding combos)
python run_experiment.py --grid --samples 50  # Full grid run (100 samples per config)

L'invite interactive vous permet de sélectionner :

  • LLM : Llama 3.3 70B (principal), Qwen 3.5 35B ou Mistral 7B Instruct (comparaison)
  • Embedding : all-MiniLM-L6-v2 (local) ou snowflake-arctic-embed2 (API)
  • K : profondeur de récupération — K=3 (plus rapide) ou K=5 (standard, par défaut)

Vous pouvez également fixer le générateur de manière non interactive via la variable d'environnement LLM_MODEL (correspondant à configs/config.yaml et à MODEL_DESCRIPTIONS de run_experiment.py) :

$env:LLM_MODEL = "mistral-7b-instruct"   # or "qwen3.5:35b", "llama3.3:70b"
python run_experiment.py --all

Cas d'utilisation SDLC du codage sécurisé

Reproduisez l'expérience de l'assistant de codage sécurisé (40 règles OWASP/CWE) depuis la racine du projet. Elle réutilise le ExperimentRunner et le PoisonedDatasetGenerator existants et écrit les résultats dans data/experiments/seccode_*.json :

$env:LLM_MODEL = "llama3.3:70b"; $env:HF_HUB_OFFLINE = "1"; $env:TRANSFORMERS_OFFLINE = "1"
python Conference_ICSEA2026/run_seccode_usecase.py
# Set $env:SECCODE_N = "4" first for a quick smoke run over a few rules.

Régénérer uniquement les graphiques

python generate_charts.py

Exécuter les tests

pytest                    # All tests (includes slow model-loading tests)
pytest -m "not slow"      # Fast tests only (~0.4s)
pytest --cov=src          # With coverage report

Résultats clés

Résultats principaux (Llama 3.3 70B + all-MiniLM-L6-v2, TruthfulQA, K=5, 100 échantillons)

Jeu de donnéesExactitudePrécisionRappelScore F1vs. Ligne de base
TruthfulQA (mixte)91%100%40%57.1%+7%
FEVER (exécution complète)73%20%26.7%22.9%−12%

Ligne de base naïve qui fait toujours confiance : 85 % (TruthfulQA), 85 % (FEVER). FEVER obtient des résultats inférieurs à la ligne de base — l'indice de confiance nécessite un calibrage spécifique au domaine pour les affirmations factuelles courtes.

Avec des intervalles de confiance à 95 % (Wilson pour les proportions, bootstrap par centiles B=20,000 pour le F1), le résultat principal de TruthfulQA en configuration mixte est : exactitude 91 % (IC 83.8–95.2), rappel 40 % (IC 19.8–64.3), F1 57.1 % (IC 25.0–80.0), Δ=0.225. Les intervalles sont larges car chaque exécution ne comporte que 15 échantillons empoisonnés ; nous les rapportons donc pour éviter de surestimer la précision.

Détection par stratégie (TruthfulQA, 100 échantillons chacune)

StratégieExactitudePrécisionRappelF1Séparation
Injection99%93.8%100%96.8%0.498
Contradiction92%88.9%53.3%66.7%0.311
Subtile88%100%20.0%33.3%0.149
Échange d'entités85%—0%0%0.053

Grille factorielle 2×2 (K=3, TruthfulQA, 100 échantillons)

Télécharger l’outil