Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
TrustworthyRAG — Un Agente de Evaluación para Detectar Desinformación y Envenenamiento de Conocimiento en Sistemas de Generación Aumentada por Recuperación. | Kitploit
Herramientas/GitHubGitHub/gpt-laboratory/trustworthyrag
Análisis de CódigoAprendizaje AutomáticoPapers e InvestigaciónSeguridad de IADetección de Anomalías
GitHubgpt-laboratory/trustworthyrag

TrustworthyRAG

Un Agente de Evaluación para Detectar Desinformación y Envenenamiento de Conocimiento en Sistemas de Generación Aumentada por Recuperación.

Ver Repositorio
70hace 3 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Trustworthy RAG

Un Agente de Evaluación para Detectar Desinformación y Envenenamiento del Conocimiento en Sistemas de Generación Aumentada por Recuperación.

Visión general

Este proyecto implementa un Trustworthy RAG Framework con un Agente de Evaluación integrado que evalúa la fiabilidad de las respuestas RAG mediante tres componentes de análisis complementarios:

  • Verificador NLI - Comprobación de consistencia fáctica mediante Inferencia de Lenguaje Natural (BART-MNLI)
  • Detector de Envenenamiento - Detección de contenido adversarial multiseñal (lingüístico, estructural, semántico, NLI intradocumental/entredocumentos)
  • Calculador del Índice de Confianza - Puntuación compuesta ponderada que combina facticidad, consistencia y seguridad frente al envenenamiento

El sistema produce una Puntuación de Confianza (0-1) para cada respuesta RAG, lo que permite la detección automatizada de ataques de envenenamiento del conocimiento y contenido alucinado.

Este repositorio es el artefacto de investigación del artículo de la conferencia ICSEA 2026 del mismo título. Consulta [Conference_ICSEA2026/](https://github.com/gpt-laboratory/trustworthyrag/blob/main/Conference_ICSEA2026) para las fuentes LaTeX y la sección Artículo más abajo.

Arquitectura

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

Estructura del Proyecto

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

Configuración

# 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.

Uso

Ejecutar la Suite de Experimentos Completa

python run_experiment.py --all

Esto ejecuta todos los experimentos y genera los gráficos automáticamente:

  • Experimento principal de TruthfulQA (100 muestras, envenenamiento mixto)
  • Experimentos por estrategia (100 muestras cada uno: inyección, contradicción, intercambio de entidades, sutil)
  • Experimento con el conjunto de datos FEVER (100 muestras)
  • Estudio de ablación (5 configuraciones de pesos, 60 muestras cada una)

Otras Opciones de Experimentos

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)

El prompt interactivo permite seleccionar:

  • LLM: Llama 3.3 70B (principal), Qwen 3.5 35B o Mistral 7B Instruct (comparación)
  • Embedding: all-MiniLM-L6-v2 (local) o snowflake-arctic-embed2 (API)
  • K: profundidad de recuperación — K=3 (más rápido) o K=5 (estándar, predeterminado)

También puedes fijar el generador de forma no interactiva mediante la variable de entorno LLM_MODEL (coincidente con configs/config.yaml y con MODEL_DESCRIPTIONS de run_experiment.py):

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

Caso de Uso SDLC de Codificación Segura

Reproduce el experimento del asistente de codificación segura (40 reglas OWASP/CWE) desde la raíz del proyecto. Reutiliza el ExperimentRunner y el PoisonedDatasetGenerator existentes y escribe los resultados en 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.

Regenerar Solo los Gráficos

python generate_charts.py

Ejecutar Pruebas

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

Resultados Clave

Resultados Principales (Llama 3.3 70B + all-MiniLM-L6-v2, TruthfulQA, K=5, 100 muestras)

Conjunto de datosExactitudPrecisiónExhaustividadPuntuación F1vs. Línea base
TruthfulQA (mixto)91%100%40%57.1%+7%
FEVER (ejecución completa)73%20%26.7%22.9%−12%

Línea base ingenua de confianza incondicional: 85% (TruthfulQA), 85% (FEVER). FEVER se queda por debajo de la línea base: el Índice de Confianza requiere calibración específica del dominio para afirmaciones fácticas cortas.

Con intervalos de confianza del 95% (Wilson para proporciones, bootstrap percentil con B=20 000 para F1), el resultado principal mixto de TruthfulQA es: exactitud 91% (IC 83.8–95.2), exhaustividad 40% (IC 19.8–64.3), F1 57.1% (IC 25.0–80.0), Δ=0.225. Los intervalos son amplios porque cada ejecución tiene solo 15 muestras envenenadas, por lo que los reportamos para no sobreestimar la precisión.

Detección por Estrategia (TruthfulQA, 100 muestras cada una)

EstrategiaExactitudPrecisiónExhaustividadF1Separación
Inyección99%93.8%100%96.8%0.498
Contradicción92%88.9%53.3%66.7%0.311
Sutil88%100%20.0%33.3%0.149
Intercambio de Entidades85%—0%0%0.053

Cuadrícula Factorial 2×2 (K=3, TruthfulQA, 100 muestras)

Descargar herramienta