J'apprends Rasa en utilisant la chaîne YouTube de la masterclass RASA. https://www.youtube.com/channel/UCJ0V6493mLvqdiVwOKWBODQ
Tout a fonctionné jusqu'à ce qu'il en soit venu aux actions de chargement. Chaque fois que j'utilise des actions d'exécution rasa dans l'invite de commande (la première des deux actions), le programme se bloque et je dois le tuer manuellement. Lorsque j'utilise le shell rasa --endpoints endpoints.yml, le bot fonctionne cependant car je continue à le rencontrer lorsque j'ajoute une action personnalisée que le serveur renvoie ne peut pas se connecter à localhost comme dans l'exemple du bas. La question est de savoir comment résoudre ce problème.
* Veuillez demander des informations supplémentaires
mon actions.py ressemble à ce qui suit:
action_endpoint: url: "http://localhost:9000/webhook"
dans domain.yml, pour la section actions que j'ai;
actions: - utter_greet - utter_cheer_up - utter_did_that_help - utter_happy - utter_goodbye - utter_iamabot - utter_ask_location - action_facility_search
et dans endpoints.yml, la plupart est # 'd out mais le bit actif est:
from typing import Any, Text, Dict, List from rasa_sdk import Action, Tracker from rasa_sdk.executor import CollectingDispatcher from rasa_sdk.events import SlotSet class ActionFacilitySearch(Action): def name(self) -> Text: return "action_facility_search" def run(self, dispatcher: CollectingDispatcher, tracker: Tracker, domain: Dict[Text, Any]) -> List[Dict[Text, Any]]: facility = tracker.get_slot("facility_type") address = "300 Hyde St, San Francisco" dispatcher.utter_message("Here is the address of the {}:{}".format(facility, address)) return []
4 Réponses :
Veuillez ne pas changer endpoints.yml avec un autre port pour action_endpoint
Veuillez vérifier avec le port 5055 qu'il fonctionnait parfaitement.
action_endpoint: url: "http://localhost:5055/webhook"
Votre serveur d'action fonctionnant sur 5055 Port. si vous voulez qu'il définisse 9000, changez-le de la demande de backend rasa core.
Réponse très simple à la fin. J'avais besoin d'exécuter deux fenêtres de commandes. La première pour:
rasa shell
Puis une deuxième fenêtre pour:
rasa x
ou
rasa run actions
il semble que votre serveur d'actions personnalisées n'a pas pu se connecter au serveur de point de terminaison mentionné dans endpoints.yml
Lors de l'exécution d'actions.py, indiquez le numéro de port sous la forme rasa run actions -p portnumber
Assurez-vous que le numéro de port que vous indiquez ici est mentionné dans endpoints.yml
Je résous en utilisant les commandes suivantes
rasa x
Puis une deuxième fenêtre pour l'un ou l'autre:
rasa run actions
cela a ensuite fonctionné comme il se doit.