Rasa自定义操作事件丢失

时间:2019-06-08 01:14:12

标签: rasa-core

我正在尝试实施自定义操作,并已将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 :(得分:0)

我也在使用RASAX。我创建了自定义操作,并成功调用了它。但是首先我想知道,您的story.md文件是否包含该操作?表示何时调用该操作。 在这里,我将介绍我已实现的内容:

在stories.md文件中:-

## story1
* play
  - action_ask_question

在domain.yml文件中:-

...
actions:
- action_ask_question
...

在action.py文件中:-

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

如有任何疑问,请评论。

答案 1 :(得分:0)

在Rasa(不是Rasa X)中使用自定义操作时,我也遇到此错误。 Error image

我通过将操作端点添加到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