Étude de cas

Evidella

Une application interne pour préparer les réponses aux questionnaires de sécurité et appels d’offres à partir de documents approuvés, avec citations et validation humaine.

Logo Evidella
Stack principale
Python · FastAPI · PostgreSQL · Qdrant · TypeScript

Problème

Des réponses réutilisables, avec leurs sources

Les équipes sécurité et commerciales répondent plusieurs fois aux mêmes questions, alors que les formulations approuvées sont dispersées entre politiques, anciens questionnaires et documentation produit. Une réponse plausible sans source crée un risque de validation et de conformité.

Mon travail

Recherche, workflow et contrôle d’accès

J’ai implémenté l’ingestion des documents, le traitement asynchrone, la recherche hybride, la génération de réponses citées, les API cloisonnées par organisation, les états de validation, les traces d’audit, l’interface TypeScript et les tests automatisés.

Implémentation

Du document à la réponse validée

Les documents sont validés et stockés, puis découpés et traités par un worker Python. Qdrant fournit les candidats sémantiques ; la recherche plein texte PostgreSQL retrouve les formulations exactes. FastAPI renvoie les extraits sources avec chaque brouillon. L’approbation et le contrôle d’accès restent des états applicatifs, pas des sorties du modèle.

  1. 01Valider et stocker les documents
  2. 02Traiter les sections en asynchrone
  3. 03Retrouver les passages pertinents
  4. 04Rédiger avec des citations
  5. 05Relire, approuver ou demander une source

Recherche hybride

Recherche sémantique et exacte

La recherche vectorielle Qdrant est combinée au classement plein texte de PostgreSQL pour ne pas perdre les formulations exactes au profit de la seule proximité sémantique. Les seuils et limites de sources sont réglables, mais demandent une évaluation propre à chaque corpus.

Contrôles applicatifs

Accès et approbation restent hors du modèle

Keycloak authentifie l’utilisateur ; PostgreSQL conserve son organisation et son rôle. Les requêtes restent cloisonnées, tandis que les validations et traces d’audit sont des données applicatives ordinaires. Le workflow est plus long, mais une réponse du modèle ne peut ni contourner les droits ni s’approuver elle-même.

Gestion des erreurs

Sources insuffisantes

Si les documents retrouvés ne permettent pas de répondre, Evidella renvoie un résultat explicite de source manquante au lieu de compléter le brouillon. Un humain peut fournir le document et relancer la recherche ; aucune réponse n’est approuvée automatiquement.

Vérification

Recherche et permissions

  • Tests backend de la recherche, du traitement, des imports et des contrôles d’accès
  • Cas d’accès non autorisé et entre organisations
  • Tests de l’interface TypeScript et des frontières d’API
  • Un jeu versionné de 50 cas pour la recherche de démonstration