02 · AI Engineering / Évaluation du retrieval

SecureBank-AI — Sécuriser une plateforme RAG avec RBAC et JWT

Une plateforme RAG hybride qui associe authentification JWT, gestion RBAC et contrôle d’accès RBAC à la comparaison reproductible de quatre stratégies de recherche documentaire : BM25, recherche vectorielle, fusion RRF et reranking.

Documents synthétiques
30
Questions d’évaluation
40
Chunks indexés
172

Question d’ingénierie

Comment concevoir et évaluer un système RAG pertinent, tout en l’intégrant dans une application fiable avec des accès maîtrisés ?

Sécurité applicative

Sécurité applicative et contrôle des accès

SecureBank-AI ne se limite pas à comparer des moteurs de recherche documentaire. Le projet intègre aussi une couche de sécurité applicative pour gérer l’identité des utilisateurs, contrôler l’accès aux fonctionnalités et protéger les informations d’authentification.

Cette dimension complète le travail d’AI Engineering : un système RAG doit aussi s’intégrer dans une application structurée, avec des API RAG protégées, des sessions maîtrisées et une gestion explicite des autorisations.

  1. 01

    Authentification & autorisation

    JWT · RBAC · API RAG protégées

    La validation JWT contrôle la signature, l’expiration, l’émetteur et l’audience avant d’identifier l’utilisateur. Des dépendances FastAPI explicites autorisent ensuite l’accès aux ressources RAG selon le rôle : l’authentification établit l’identité, l’autorisation détermine l’action permise. Le compte de démonstration configuré par environnement utilise le rôle analyst.

  2. 02

    Identifiants & sessions

    bcrypt · Cookie HttpOnly · CSRF

    Les mots de passe sont hachés avec bcrypt. Les jetons de session et CSRF sont générés séparément. Les jetons de session sont stockés sous forme de hash dans SQLite, expirent et sont invalidés à la déconnexion. Le cookie de session est HttpOnly ; SESSION_COOKIE_SECURE et SESSION_COOKIE_SAMESITE configurent sa politique de transport. Le frontend envoie les cookies avec credentials: "include" et transmet le jeton CSRF pour les requêtes mutables.

  3. 03

    Protection des API & configuration

    Origines de confiance · Variables d’environnement · Secrets

    L’origine des connexions est contrôlée par une liste autorisée et les requêtes mutables authentifiées par cookie exigent une validation CSRF. Les échecs de connexion sont limités. AUTH_TRUSTED_ORIGINS, JWT_SECRET_KEY et DEMO_USER_PASSWORD maintiennent la configuration sensible hors de l’interface publique. Aucune valeur secrète n’est exposée ici.

  4. 04

    Gestion des utilisateurs & persistance

    SQLite · User repository · Association des rôles

    SQLiteUserRepository persiste les comptes, les hash de mots de passe, leur état d’activation et leur rôle. Au démarrage, un compte de démonstration optionnel est initialisé de façon idempotente depuis la configuration d’environnement avec le rôle analyst, sans remplacer un compte existant.

Contrôles de sécurité, de l’identité aux ressources RAG protégées.
  1. Requête utilisateurIdentité et identifiants
  2. AuthentificationValidation JWT ou session par cookie
  3. AutorisationRBAC et dépendance de rôle
  4. Ressources protégéesAPI RAG et PII
PersistanceSQLiteUtilisateurs · Rôles · Sessions hachées
Configuration d’exécutionEnvironnementOrigines autorisées · Politique des cookies · Secrets
01

AI Engineering

RAG hybride, stratégies de retrieval, benchmarking et évaluation de la pertinence.

02

Software Engineering

FastAPI, React, TypeScript, API REST, persistance, tests et déploiement.

03

Application Security

Authentification JWT, RBAC, hachage des mots de passe, sessions et contrôle des accès.

SecureBank-AI associe l’expérimentation RAG à une architecture full-stack intégrant des mécanismes d’authentification, d’autorisation et de gestion des utilisateurs.

La réponse se joue en amont

Un modèle de langage ne peut ancrer sa réponse que dans le contexte reçu. Si le retrieval manque le passage pertinent, surclasse une preuve faible ou retourne des sources redondantes, la génération commence avec un déficit d’information.

SecureBank-AI traite le retrieval comme un sous-système d’ingénierie observable. Quatre moteurs alternatifs suivent un même protocole expérimental afin de comparer les comportements lexical, sémantique, hybride et reranké, plutôt que de les supposer.

Architecture de retrieval

Les documents sont découpés en chunks, indexés pour la recherche lexicale et vectorielle, puis interrogés via l’une des quatre configurations d’évaluation. RRF fusionne les classements ; FlashRank est une étape optionnelle réservée à la quatrième configuration.

Configurations de retrieval alternatives menant au contexte retrouvé puis, éventuellement, à la génération.
Question
Chunks indexés

Configurations alternatives

Recherche lexicaleBM25
Recherche vectorielleQdrantparaphrase-multilingual-MiniLM-L12-v2
Fusion des classementsRRFBM25 + Qdrant
Reranking · optionnelRRF + FlashRank
Contexte retrouvéIntégration LLM en aval
  1. 01

    BM25

    Une baseline lexicale qui score les passages selon la pertinence des termes.

  2. 02

    Qdrant

    Recherche vectorielle sémantique avec les embeddings paraphrase-multilingual-MiniLM-L12-v2.

  3. 03

    RRF

    Reciprocal Rank Fusion combine les classements indépendants de BM25 et Qdrant.

  4. 04

    RRF + FlashRank

    FlashRank reclasse les candidats hybrides dans une configuration expérimentale distincte.

Méthodologie d’évaluation

RAG v2 : un corpus, quatre configurations

Le benchmark utilise 30 documents synthétiques, 40 questions et 172 chunks indexés. Qwen juge 260 paires question-document pour construire des annotations expérimentales de pertinence ; 38 questions sur 40 ont au moins un document jugé pertinent.

Le même benchmark expose la qualité du classement, le succès du retrieval, la couverture des sources et des preuves, la diversité, la latence et les erreurs des quatre moteurs. Les résultats sont des observations descriptives pour ce corpus et cette configuration.

Les jugements de pertinence générés par un LLM sont des annotations expérimentales, pas une validation humaine systématique.

  • RAG v2
  • 30 documents
  • 40 questions
  • 172 chunks
  • 4 stratégies
  • 260 paires jugées
  • 38/40 avec preuve pertinente

Résultats

RRF est la configuration globale la plus solide sur ce benchmark

RRF domine les métriques observées de classement et de retrieval tout en maintenant une latence moyenne proche de 15 ms. Il s’agit d’un résultat de benchmark, pas d’un score global artificiel ni d’une garantie en production.

Métriques clés des quatre moteurs SecureBank-AI
MétriqueBM25QdrantRRFRRF + FlashRank
Precision@152,6%63,2%65,8% — Meilleure valeur observée52,6%
Recall@358,9%63,0%69,8% — Meilleure valeur observée60,6%
MAP@350,5%56,4%61,1% — Meilleure valeur observée50,9%
MRR@364,9%72,4%76,3% — Meilleure valeur observée66,7%
nDCG@356,4%56,1%64,3% — Meilleure valeur observée55,0%
Success@378,9%81,6%89,5% — Meilleure valeur observée84,2%
Source Hit@389,5% — Meilleure valeur observée86,8%89,5% — Meilleure valeur observée89,5% — Meilleure valeur observée
Evidence Hit@378,9%81,6%89,5% — Meilleure valeur observée84,2%
Latence moyenne0,4 ms — Meilleure valeur observée14,0 ms15,0 ms421,6 ms
Latence P950,7 ms — Meilleure valeur observée18,3 ms17,2 ms541,9 ms
Voir les 22 indicateurs
Jeu complet de métriques RAG v2
MétriqueBM25QdrantRRFRRF + FlashRank
Precision@152,6%63,2%65,8% — Meilleure valeur observée52,6%
Precision@342,1%46,5%50,0% — Meilleure valeur observée42,1%
Recall@127,3%30,8%31,2% — Meilleure valeur observée26,8%
Recall@358,9%63,0%69,8% — Meilleure valeur observée60,6%
F1@134,2%39,9%40,7% — Meilleure valeur observée33,6%
F1@346,9%51,3%55,4% — Meilleure valeur observée46,8%
MAP@350,5%56,4%61,1% — Meilleure valeur observée50,9%
Success@152,6%63,2%65,8% — Meilleure valeur observée52,6%
Success@378,9%81,6%89,5% — Meilleure valeur observée84,2%
Source Hit@171,1%71,1%78,9% — Meilleure valeur observée63,2%
Source Hit@389,5% — Meilleure valeur observée86,8%89,5% — Meilleure valeur observée89,5% — Meilleure valeur observée
Evidence Hit@152,6%63,2%65,8% — Meilleure valeur observée52,6%
Evidence Hit@378,9%81,6%89,5% — Meilleure valeur observée84,2%
MRR@364,9%72,4%76,3% — Meilleure valeur observée66,7%
nDCG@356,4%56,1%64,3% — Meilleure valeur observée55,0%
Latence moyenne0,4 ms — Meilleure valeur observée14,0 ms15,0 ms421,6 ms
Latence P500,4 ms — Meilleure valeur observée13,0 ms15,6 ms422,7 ms
Latence P950,7 ms — Meilleure valeur observée18,3 ms17,2 ms541,9 ms
Taux d’erreur0% — Meilleure valeur observée0% — Meilleure valeur observée0% — Meilleure valeur observée0% — Meilleure valeur observée
Chunks retournés en moyenne3333
Documents distincts@32,372,292,212,45 — Meilleure valeur observée
Diversité des sources@378,9%76,3%73,7%81,6% — Meilleure valeur observée

Arbitrages d’ingénierie

01

Le reranking n’est pas automatiquement bénéfique

Face à RRF, FlashRank fait reculer MAP@3 de 61,1 % à 50,9 %, nDCG@3 de 64,3 % à 55,0 % et Success@3 de 89,5 % à 84,2 %. La latence moyenne passe de 15,0 ms à 421,6 ms — environ 28×. Cet arbitrage observé est propre au corpus, au benchmark et à la configuration ciblés.

02

BM25 reste une baseline utile

BM25 atteint 89,5 % de Source Hit@3 avec une latence moyenne de 0,4 ms. Le retrieval lexical reste une option crédible à faible latence ; le vectoriel n’est pas intrinsèquement supérieur.

03

L’hybride RRF justifie sa place

MAP@3 progresse de 50,5 % pour BM25 et 56,4 % pour Qdrant à 61,1 % pour RRF. L’observation invite à évaluer les approches lexicale, sémantique et hybride plutôt qu’à choisir un moteur sur des suppositions.

Implémentation full-stack

Le framework d’évaluation s’inscrit dans une application web complète, avec des frontières explicites entre services de retrieval, interface produit, déploiement et contrôles qualité.

Backend

  • Python
  • FastAPI
  • API REST
  • SQLite

Frontend

  • React
  • TypeScript
  • Vite
  • Dashboard analytique
  • Interface multilingue
  • Gestion des erreurs et des états de chargement

Déploiement

  • Docker
  • Backend sur Render
  • Frontend sur Vercel
  • Configuration par environnement
  • Routage API et configuration du proxy

Qualité

  • Pytest
  • Vitest
  • ESLint
  • Ruff
  • Tests automatisés et de régression

Dashboard du benchmark

Le dashboard rend l’évaluation du retrieval inspectable au lieu de la masquer derrière une interface conversationnelle.

Des snapshots de référence maintiennent la vue analytique disponible lorsque le backend ne l’est pas. Ce sont des artefacts de résilience, pas des mesures en direct.

Méthodologie et limites

Prochaines expérimentations possibles

Il s’agit de pistes futures, pas de fonctions déjà implémentées.

Concevoir → Expérimenter → Mesurer → Comparer → Améliorer

SecureBank-AI transforme les choix de retrieval en décisions d’ingénierie testables. Le benchmark ne certifie pas un produit bancaire ; il produit les éléments nécessaires pour choisir, questionner et améliorer une configuration RAG.