Расы пользовательских действий события теряются - PullRequest
0 голосов
/ 08 июня 2019

Я пытаюсь реализовать пользовательские действия и добавил action_get_answer в domain.yml.

actions:
 - utter_greet
 - utter_cheer_up
 - utter_did_that_help
 - utter_happy
 - utter_goodbye
 - actions.GetAnswer

Добавлено действие в actions.py :

class GetAnswer(Action):

    def name(self) -> Text:
        return "action_get_answer"


    def run(self, dispatcher: CollectingDispatcher,
            tracker: Tracker,
            domain: Dict[Text, Any]) -> List[Dict[Text, Any]]:

        dispatcher.utter_message("action_get_answer")

        return []

Запустил сервер действий:

$ rasa run actions

После запуска сервера rasa:

$ rasa x

я получаю эту ошибку, и GetAnswer не запускается -

ОШИБКА rasa.core.processor - Обнаружено исключение во время работы действие 'action_get_answer'. Бот продолжит, но действия событий потеряны Обязательно исправьте исключение в своем пользовательском коде.

Как мне сделать эту работу?

Спасибо

Ответы [ 2 ]

0 голосов
/ 28 июня 2019

У меня также была эта ошибка при использовании пользовательских действий в Rasa (не Rasa X). Изображение ошибки

Я решил проблему, добавив конечные точки действий в файл endpoints.yml

action_endpoint:
 url: "http://localhost:5055/webhook"

Запустите сервер действий с использованием одной командной строки

rasa run actions

или (если вы не установили rasa)

python -m rasa_sdk --actions actions

и запустите rasa shell, используя другую командную строку (с настройками конечных точек)

rasa shell --endpoints endpoints.yml
0 голосов
/ 11 июня 2019

Я также работаю над RASA X. Я создал пользовательские действия, и он успешно вызван.Но сначала я хочу знать, содержит ли ваш файл story.md это действие?означает, когда вызвать это действие.Здесь я привожу то, что реализовал:

В файле Stories.md: -

## story1
* play
  - action_ask_question

В файле domain.yml: -

...
actions:
- action_ask_question
...

В действии.py файл: -

class ActionAskQuestion(Action):
     def name(self):
          return "action_ask_question"
     def run(self, dispatcher, tracker, domain):
          dispatcher.utter_message("Action called.")
          return []

Если у вас есть какие-либо вопросы, прокомментируйте их.

...