Lycée Maximilien Sorre
Année 2017-2018 BTS SIO 1
TP d'algorithmique - bonus numéro 3 Agent conversationnel
1 Énoncé
Un agent conversationnel (ou chatbot) est un agent (ou robot) qui dialogue avec un utilisateur. Le but de ce TP est d'en créer un très simple.
1) L'agent devra commencer par se présenter, avant de demander à l'utilisateur de saisir son nom.
Le nom saisi devra être utilisé de temps en temps par l'agent pour personnaliser la conversation.
2) L'agent devra préciser que saisir "Au revoir" mettra n à la conversation.
3) L'agent devra demander ensuite de saisir une phrase. Puis, il devra répondre à cette phrase selon les critères suivants :
• Si la phrase est "Au revoir", l'agent devra répondre "Au revoir", puis s'arrêter.
• Si la phrase est "Quel jour sommes-nous ?", l'agent devra donner la date et revenir au début de l'étape 3.
• Si la phrase contient un calcul, l'agent devra demander de re-saisir le calcul (et uniquement le calcul, sans aucun autre caractère), et acher le résultat du calcul avant de revenir à l'étape 3.
• Si la phrase est une question (autre que les cas déjà cités), l'agent devra répondre qu'il ne peut pas répondre à la question.
• Dans tous les autres cas, l'agent devra dire qu'il ne comprend pas.
(On pourra utiliser une fonction récursive ne prenant pas de paramètre, demandant de saisir une phrase, achant la réponse appropriée, et faisant appel à elle-même si la phrase saisie est autre chose que "Au revoir".
2 Pour aller plus loin
Pour aller plus loin :
• On pourra faire varier aléatoirement les réponses (par exemple dans le cas où l'on ne peut rien dire de la phrase, l'agent pourra répondre une fois sur deux : "Je ne comprends pas.", et le reste du temps : "Soyez plus clair".
• On pourra améliorer l'agent en détectant des séquences clés au lieu de phrases entières, et amélio- rer la détection de séquences clés en mettant toute la phrase en minuscule pour éviter les problèmes d'oubli de majuscule, ou de majuscule en trop.
• On pourra améliorer l'agent en lui faisant répondre (de façon précise) à plus de choses.
• On pourra également (pour la culture) se renseigner sur le test de Turing.
3 Petite liste de fonctions utiles
Ci-dessous sont donnés quelques exemples d'utilisation de fonctions utiles. Rappelons qu'en cas de besoin, une description de ces fonctions pourra être obtenue à l'aide de la procédure help.
• >>> print(eval("3+4"))
• Dans la bibliothèque time :
>>> print(strftime('Nous sommes en %Y, et il est %H heure passée',localtime()))
• >>> chaine = "bla bla bla"
>>> print(chaine.count("bla"))
• >>> chaine = "Bla bLa blA"
>>> print(chaine.lower())