Intermédiaire
🧠 Fondamentaux
20 XP
0 personnes ont réussi
Conversation interactive
Un bon assistant ne se contente pas de repondre a une question et de quitter. Il reste disponible pour la suite. Tu lui poses une question, il repond, tu enchaines, il se souvient du contexte. C'est le mode REPL : Read-Eval-Print-Loop.
Claude Code fonctionne exactement comme ca. Tu ouvres le terminal, tu lui parles, il repond, tu continues. Tu peux taper des commandes speciales comme /quit pour sortir, /clear pour effacer l'historique, ou /cost pour voir combien tu as depense en tokens.
Ecris une classe SessionInteractive qui gere une session de conversation. Elle ne fait pas les appels API (ca, c'est le role du ClientLLM) mais elle orchestre tout le reste : historique, commandes speciales, cout estime.
La classe prend un system_prompt a la construction.
Methodes :
traiter_entree(texte) : prend le texte saisi par l'utilisateur et renvoie un dictionnaire decrivant quoi faire.
ajouter_echange(question, reponse) : enregistre un echange dans l'historique.
obtenir_messages() : renvoie les messages au format API OpenAI (system + historique).
obtenir_stats() : renvoie les statistiques de la session.
Le traitement d'entree doit gerer ces cas :
Texte vide : {"action": "ignorer"} /quit ou /exit : {"action": "quitter"} /clear : {"action": "effacer"} et l'historique est vide /stats : {"action": "stats", "donnees": {...}} avec nombre de messages, tokens estimes, etc. /files : {"action": "lister_fichiers"} Texte normal : {"action": "envoyer", "prompt": "le texte"}
Pour estimer les tokens, utilise la regle simple : 1 token = environ 4 caracteres.
Exemple :
session = SessionInteractive("Tu es un assistant Python.")