Module IA - AI
Vous êtes ici dans la documentation du module IA du robot.
Ce module sert a dialoguer avec le robot, il est capable de comprendre et de répondre à des questions.
Il peut aussi avoir des emotions et des réactions.
Warning
Avant d’utiliser un module, il faudra toujours le lancer sinon il vous sera impossible d’utiliser le module et les méthodes lier à celui-ci.
Note
Il est conseiller de lancer le module fenêtre avant de lancer le module IA pour pouvoir voir les réactions du robot et recuperer plus facilement les questions et les réponses.
Demmarer le module IA
robot.initialiser_module_IA()
ou alors
robot.init_AI_module()
À partir de ce moment, l'objet IA est initialisé dans le robot il est donc utilisable.
Note
La méthode initialiser_module_IA()
(fr) - init_AI_module()
(en).
Discuter avec le robot
Commencer à discuter avec le robot
Pour commencer une discussion avec le robot, il faut utiliser la méthode demarrer_discussion()
(fr) - init_conversation()
(en).
Demarrer une discussion
robot.IA.demarrer_discussion()
ou alors
robot.AI.init_conversation()
Warning
Il faut toujours commencer une discussion avec le robot avant d'utiliser les méthodes suivantes.
Arrêter de discuter avec le robot
Pour arrêter la discussion avec le robot, il faut utiliser la méthode arreter_discussion()
(fr) - stop_conversation()
(en).
Arreter une discussion
robot.IA.arreter_discussion()
ou alors
robot.AI.stop_conversation()
Warning
A partir de ce moment là le robot ne pourra plus vous répondre et il faudra recommencer la discussion avec demarrer_discussion()
.
Poser une question / parler au robot
Pour pouvoir parler au robot (poser des questions, donner des informations, ...), il faut utiliser la méthode poser_question(question : str)
(fr) - ask_question(question : str)
(en).
Poser une question
question = "Quel est ton nom ?"
robot.IA.poser_question(question)
ou alors
question = "Quel est ton nom ?"
robot.AI.ask_question(question)
Le robot répondra à la question posée en paramètre.
Cette fonction retourne la réponse du robot.
Info
Le robot peut prendre un certain temps de réflexion pour vous répondre pendant ce temps de réflexion le robot semblera être en pause (inutilisable).
Il suffit simplement d'attendre sa réponse pour qu'il ne soit plus en pause (utilisable).
Warning
Tant qu'aucun historique de conversation n'est chargé, le robot ne pourra pas se souvenir de la conversation précédente. Le robot ne se souviendra pas des interactions qu'il a pu avoir avec l'utilisateur tant que l'historique de conversation n'est pas chargé.
L'historique de conversation du robot
Comme dit précédemment si on ne donne pas d'historique de conversation au robot, il ne pourra pas se souvenir de la conversation précédente.
Gérer l'historique de conversation
Se souvenir
Warning
Avant cette étape, il faut avoir récupéré l'historique de conversation de l'utilisateur.
Note : voir la documentation du module utilisateur pour récupérer l'historique de conversation.
Pour que le robot se souvienne des échanges qu'il a eu avec l'utilisateur, il faut charger un historique de conversation.
On peut charger l'historique dans le robot avec la méthode charger_historique_conversation(historique_de_conversation : str)
(fr) - load_conversation_history(conversation_history : str)
(en).
Ici, vous donnez donc au robot la capacité de se souvenir des interactions qu'il a eues avec l'utilisateur, ainsi il pourra reprendre la discussion là où elle s'était arrêtée la dernière fois.
Charger un historique de conversation
historique = robot.utilisateur.obtenir_historique_conversation()
robot.IA.charger_historique_conversation(historique)
ou alors
history = robot.user.get_conversation_history()
robot.AI.load_conversation_history(history)
Warning
Si un historique de conversation est déjà chargé et qu'un autre historique vient à être chargé l'ancien historique sera écrasé.
Note
Si l'historique n'est pas vide, le robot reprendra la discussion là où l'utilisateur l'avait arrêtée la dernière fois.
Effacer la mémoire
Si vous voulez changer de discussion ou bien effacer l'historique de la conversation vous pouvez utilisez la méthode effacer_historique_conversation()
(fr) - clear_conversation_history()
(en).
Note
Pensez à effacer l'historique quand l'utilisateur se déconnecte.
Supprimer l'historique de conversation
robot.IA.effacer_historique_conversation()
ou alors
robot.AI.clear_conversation_history()
A partir de ce moment le robot oubliera tout des échanges précédents avec l'utilisateur.
Warning
Pensez à récupérer et sauvegarder l'historique avant de le supprimer
Récupérer la mémoire du robot
Pour pouvoir sauvegarder l'historique de conversation (mémoire du robot), il faut pouvoir récupérer l'historique de conversation pour cela il faut utiliser la méthode obtenir_historique_conversation()
(fr) - get_current_conversation_history()
(en).
Récupérer l'historique de conversation
robot.IA.obtenir_historique_conversation()
ou alors
robot.AI.get_current_conversation_history()
Cette méthode renvoit la mémoire du robot permettant ainsi la sauvegarde de celle-ci.
Note
Voir la documentation du module utilisateur pour voir comment sauvegarder l'historique de conversation.
Exemple complet 1
from pybot import Robot
robot = Robot()
robot.initialiser_module_IA()
robot.IA.demarrer_discussion()
while True:
question = input("Vous : ")
reponse = robot.IA.poser_question(question)
print("Pybot : ", reponse)
Warning
L'appel à la fonction input()
devra etre remplacé par la méthode permettant de récupérer les questions posées par l'utilisateur.
On pourra le remplacer par une zone de texte dans la fenêtre.
De même le print devra être remplacé par la méthode permettant d'afficher les réponses du robot.
On pourra le remplacer par exemple via un appel à la méthode afficher_texte() du module Fenetre.
Les émotions du robot
Le robot peut avoir des émotions et des réactions.
Pour lui donner des émotions, il faut utiliser la méthode donner_emotion(phrase : str)
(fr) - get_emotion(sentence : str)
(en).
Cette méthode prend en paramètre une phrase (chaîne de caractère) et renvoie l'émotion que le robot exprime en fonction de celle-ci.
Si aucune émotion enregistrée ne correspond a la phrase, il reste Neutre.
Obtenir l'émotion du robot
phrase = "Je suis content"
emotion = robot.IA.donner_emotion(phrase)
ou alors
sentence = "I am happy"
emotion = robot.AI.get_emotion(sentence)
Note
Voici la liste des émotions que le robot peut interpreter : - Célébration - Joie - Amusement - Soulagement - Suprise - Neutre - Réflexion - Incomprehension - Fatigue - Inquiétude - Contrariété - Tristesse - Colère - Peur
Voir la documentation de la fenêtre pour voir comment afficher les émotions du robot.
Exemple complet 2
from pybot import Robot
robot = Robot()
robot.initialiser_module_fenetre()
robot.initialiser_module_IA()
robot.fenetre.ouvrir_fenetre()
robot.ajouter_evenement("echap", "stop")
i = 0
while i < 15 :
evenement = robot.verifier_evenements()
if evenement == "stop" :
robot.desactiver()
break
if i == 0 :
phrase = "Je celebre ma victoire"
elif i == 1 :
phrase = "Je suis content"
elif i == 2 :
phrase = "Je suis amusé"
elif i == 3 :
phrase = "Je suis soulagé"
elif i == 4 :
phrase = "Je suis surpris"
elif i == 5 :
phrase = "Je suis neutre"
elif i == 6 :
phrase = "Je suis en pleine reflexion"
elif i == 7 :
phrase = "Je ne comprends pas"
elif i == 8 :
phrase = "Je suis fatigué"
elif i == 9 :
phrase = "Je suis inquiet"
elif i == 10 :
phrase = "Je suis très contrarié"
elif i == 11 :
phrase = "Je suis triste"
elif i == 12 :
phrase = "Je suis très en colère"
elif i == 13 :
phrase = "Je suis effrayé"
elif i == 14 :
robot.desactiver()
break
emotion = robot.IA.donner_emotion(phrase)
print(phrase, " : ", emotion)
chemin_image_emotion = robot.fenetre.obtenir_image_emotion(emotion)
robot.fenetre.afficher_fond()
robot.fenetre.afficher_image(chemin_image_emotion, 346, 246)
robot.fenetre.actualiser_affichage()
robot.dort(1)
i += 1
Warning
La compréhension des emotions est quelque chose de complexe et il se peut que le robot ne comprenne pas l'émotion que vous voulez lui faire exprimer.