Intermédiaire
🧠 Fondamentaux
20 XP
0 personnes ont réussi
Pipeline sequentiel
Dans un systeme LLM reel, la question de l'utilisateur ne va jamais directement au modele. Elle passe d'abord par une serie d'etapes : nettoyage du texte, enrichissement avec du contexte, formatage du prompt, appel au LLM, puis post-traitement de la reponse. C'est un pipeline sequentiel, ou chaque etape prend le resultat de la precedente.
Pense a une chaine de montage en usine : la piece brute arrive, passe a la decoupe, puis au polissage, puis a la peinture, puis a l'emballage. Chaque poste fait une chose et passe le resultat au suivant.
Voici le principe :
def nettoyer(texte): return texte.strip().lower()
def enrichir(texte): return f"Contexte: Tu es un expert. Question: {texte}"
pipeline = [nettoyer, enrichir] # " BONJOUR " -> "bonjour" -> "Contexte: Tu es un expert. Question: bonjour"
Tu vas ecrire une fonction executer_pipeline(donnee, etapes) qui prend une donnee initiale et une liste de fonctions (les etapes du pipeline). Chaque fonction prend un argument et renvoie un resultat. La fonction les execute dans l'ordre, en passant le resultat de chaque etape comme argument de la suivante.
La fonction renvoie un dictionnaire avec : - "resultat" : le resultat final - "etapes" : une liste de dictionnaires, chacun avec "nom" (le nom de la fonction, via __name__) et "sortie" (le resultat de cette etape)
Si une etape leve une exception, la fonction s'arrete et renvoie : - "erreur" : le message de l'exception - "etape_echouee" : le nom de la fonction qui a echoue - "etapes" : les etapes qui ont reussi avant l'echec
Exemple :
def upper(t): return t.upper() def exclaim(t): return t + "!"