0

我正在尝试实现自定义操作并将 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”时遇到异常。Bot 将继续,但操作事件会丢失。确保修复自定义代码中的异常。

我该如何进行这项工作?

谢谢

4

2 回答 2

1

我也在研究 RASA X。我创建了自定义操作并成功调用了它。但首先我想知道,您的 stories.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 []

如果您有任何问题,请发表评论。

于 2019-06-11T10:51:30.770 回答
1

在 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
于 2019-06-28T07:00:21.633 回答