Contenu archivéCet article n'est plus maintenu.
Initialiser un bot
Pour initialiser un projet avec Rasa, exécutez la commande Docker suivante :
docker run -it -u 1000 -v ${PWD}:/app rasa/rasa:2.8.0-full init --no-prompt
Essayer de parler avec un bot
Pour essayer un bot, exécutez la commande suivante :
docker run -it -u 1000 -v ${PWD}:/app rasa/rasa:2.8.0-full shell
Vous pouvez à présent parler avec votre bot, essayez de d'écrire un texte (ex: "Hello !") et il vous répondra.
Si vous voulez redémarrer ou stopper le bot, voici les commandes à executer :
/restart/stop
Entrainer votre bot
Il existe une commande pour entrainer un bot :
docker run -it -u 1000 -v ${PWD}:/app rasa/rasa:2.8.0-full train
Tester le bot
Dans un projet Rasa, il existe un dossier test
, avec des fichier yaml (ex: test_stories.yml
).
Ces fichiers, permettent de tester notre bot de manière automatique pour vérifier si il répond correctement selon la configuration qu'on lui a renseigné.
Exéctuez la commande suivante pour tester votre bot :
docker run -it -u 1000 -v ${PWD}:/app rasa/rasa:2.8.0-full test
Si jamais un test échoue, vous pouvez avoir plus de détails via le fichier results/failed_test_stories.yml
.
Démarrer votre bot
Pour démarrer votre bot :
docker run -u 1000 -p 5005:5005 -v ${PWD}:/app rasa/rasa:2.8.0-full run
Configurer le bot
Les 3 fichiers les plus importants pour configurer un bot sont les suivants :
data/nlu.yml
Ce fichier contient la liste de tous les languages (NLU) que le bot analysera pour selectionner une action correspondante à chaque message qu'il recevra.
data/stories.yml
Ce fichier contient tous les différents chemins qu'un utilisateur peut emprunter pour parler au bot.
domain.yml
Ce fichier contient toutes les réponses que le bot peut envoyer à un utilisateur.
actions/actions.py
Configurer le bot pour qu'il dise "bonjour"
Pour que notre bot dise bonjour il faut configurer 3 fichiers :
# data/nlu.ymlnlu:- intent: helloexamples: |- bonjour- salut- hello- hey- yo- coucou- comment tu vas ?- Salutations ! Je suis Buzz L'éclair et je viens en paix !
# data/stories.ymlstories:- story: hellosteps:- intent: hello- action: utter_hello
# domain.ymlintents:- helloresponses:utter_hello:- text: "Bonjour, que puis-je pour vous ?"
Configurer le bot pour qu'il vérifie la disponibilité d'un site internet
# endpoints.ymlaction_endpoint:url: http://localhost:5055/webhook
# data/nlu.ymlversion: "2.0"nlu:- intent: check_websiteexamples: |- j'aimerai vérifier la disponibilité de mon site
# data/rules.ymlversion: "2.0"rules:- rule: activate check_website formsteps:- intent: check_website- action: check_website_form- active_loop: check_website_form- rule: submit check_website_formcondition:- active_loop: check_website_formsteps:- action: check_website_form- active_loop: null- action: action_hello_world- action: utter_website_tested
# domain.ymlresponses:utter_ask_website:- text: "Pouvez-vous me rappeler le nom de domaine de votre application ? (ex: mondomaine.fr)"forms:domain_form:required_slots:domain:- type: from_textactions:- action_check_domain
# actions/actions.pyimport requestsfrom typing import Any, Text, Dict, Listfrom rasa_sdk import Action, Trackerfrom rasa_sdk.executor import CollectingDispatcherdef check_website(domain):try:url = "https://%s" % domainr = requests.get(url)if r.status_code == 200:return Truereturn Falseexcept Exception as e:return Falseclass ActionCheckDomain(Action):def name(self) -> Text:return "action_check_domain"def run(self, dispatcher: CollectingDispatcher,tracker: Tracker,domain: Dict[Text, Any]) -> List[Dict[Text, Any]]:if check_website(tracker.get_slot("domain")):dispatcher.utter_message(text="Domain good")else:dispatcher.utter_message(text="Domain bad")return []