Retour catalogue
Intermédiaire~12 htransformationingestionserving

Un pipeline RAG mesuré, en production

Pipeline RAG en production, c'est 80 % data engineering. Ce projet teste les 80 %.

Contexte

Tout le monde a vu un demo RAG qui marche. Personne ne te montre celui qui crashe à 50 000 documents parce que chunking a explosé l'index, ou celui qui hallucine confidemment quand la question est hors-domaine. Ce projet te fait construire version qui tient en production.

Tu pars de 5 000 documents synthétiques d'un SaaS B2B fictif (Lumora Stock). Tu chunkes, tu embeddes avec un modèle déterministe (`all-MiniLM-L6-v2`, 384 dims, CPU pur), tu stockes en Postgres + pgvector, tu retrieves avec une mesure objective (recall@5, MRR), et tu câbles un hallucination gate qui refuse de répondre quand score de retrieval est trop faible.

Rubric ne juge JAMAIS qualité d'une réponse LLM (non-déterministe et hors-scope). Elle juge qualité du PIPELINE : déterminisme des embeddings, recall@5 ≥ 0.70, MRR ≥ 0.45, refus correct sur les questions hors-domaine. Compétence évaluée, c'est rigueur data,pas l'art du prompt.

Architecture

Stack et flow du projet

Loading diagram…

Ce que tu vas livrer

  • Module `src/chunk.py` qui découpe les documents proprement (taille raisonnable, overlap maîtrisé)
  • Module `src/embed.py` qui génère embeddings déterministes via `sentence-transformers`
  • Module `src/store.py` qui upsert dans pgvector avec un index ivfflat ou hnsw
  • Module `src/retrieve.py` avec top-k search par cosine similarity
  • Module `src/answer.py` qui inclut hallucination gate (refuse si retrieval < seuil)

Ce que CI vérifie

  • Schéma de la table `chunks` matche contrat (colonne `VECTOR(384)`)
  • Nombre de chunks après ingestion est entre 30 000 et 100 000 (chunking raisonnable)
  • Régénérer les embeddings produit exactement les mêmes vecteurs (déterminisme)
  • Recall@5 ≥ 0.70 sur 50 questions golden (au moins 35 ont leur chunk attendu dans le top 5)
  • Mean Reciprocal Rank ≥ 0.45
  • Les 10 questions hors-domaine déclenchent hallucination gate (système refuse de répondre)

Prérequis

  • Python solide (sqlalchemy, gestion d'erreurs, design de pipeline)
  • SQL avancé (CTE, fonctions, index)
  • Notion d'embeddings et de similarity search,ou volonté d'apprendre vite
  • Idéalement : avoir vu passer un projet ML une fois dans sa vie

Comment ça marche

  1. 01

    Tu cliques « Commencer »

    On forke template sur ton compte GitHub. Aucune install locale, aucun Docker à débugger.

  2. 02

    Tu codes dans GitHub Codespaces

    VS Code dans ton navigateur, prêt à l'emploi : DBs locales, dépendances Python, tout dans devcontainer. 60h/mois gratuits chez GitHub.

  3. 03

    Tu pushes, CI te répond

    GitHub Actions exécute rubrique. Vert = validé. Rouge = chaque check échoué te dit ce qui manque, en français.

Information précontractuelle

  • Vendeur : Merta
  • Prix : 39 € TTC, franchise de TVA
  • Livraison : numérique, immédiate après paiement
  • Droit de rétractation : exclu après début d'exécution, voir case à cocher
  • Paiement sécurisé via Stripe

Achat soumis aux CGV.