Exercices AI Engineering Router une requete vers le bon pipeline
🎉

Bravo!

Débutant 🧠 Fondamentaux 10 XP 0 personnes ont réussi

Router une requete vers le bon pipeline

Dans une application LLM serieuse, tu ne traites pas toutes les questions de la meme facon. Une question factuelle ("Quelle est la capitale du Japon ?") peut etre traitee par un systeme RAG qui cherche dans une base de connaissances. Une question creative ("Ecris-moi un poeme") va directement au LLM. Et un calcul ("Combien font 15% de 250 ?") passe par un outil de calcul.

Ce mecanisme s'appelle le routing. C'est comme un aiguillage de train : selon le type de question, tu diriges vers le bon rail. En production, ca evite d'envoyer un calcul simple a un LLM (qui peut se tromper) alors qu'une calculatrice donne le resultat exact.

Le principe :

routes = {
"factuelle": ["qui", "quoi", "quand", "ou", "combien"],
"creative": ["ecris", "invente", "imagine", "compose"],
"calcul": ["calcule", "combien font", "pourcentage"]
}

Tu vas ecrire une fonction router_requete(question, routes) qui prend une question et un dictionnaire de routes. Chaque cle du dictionnaire est le nom d'un pipeline, et la valeur est une liste de mots-cles declencheurs. La fonction renvoie le nom du premier pipeline dont un mot-cle apparait dans la question (en minuscules). Si aucune route ne correspond, elle renvoie "general".

Exemple :

routes = {"rag": ["qui est", "definir"], "creative": ["ecris", "imagine"]}
router_requete("Qui est Alan Turing ?", routes) renvoie "rag"
router_requete("Raconte-moi une blague", routes) renvoie "general"

Tests (4/5)

Route vers le bon pipeline
routes = {'rag': ['qui est', 'definir'], 'creative': ['ecris', 'imagine']}
assert router_requete('Qui est Marie Curie ?', routes) == 'rag'
Route creative
routes = {'rag': ['qui est'], 'creative': ['ecris', 'imagine']}
assert router_requete('Imagine une histoire', routes) == 'creative'
Aucune route trouvee
routes = {'rag': ['qui est'], 'creative': ['ecris']}
assert router_requete('Bonjour comment ca va ?', routes) == 'general'
Insensible a la casse
routes = {'rag': ['qui est']}
assert router_requete('QUI EST Einstein ?', routes) == 'rag'

+ 0 tests cachés

Indices (3 disponibles)

solution.py