0

我正在寻找一种以 Rasa 形式管理故障的方法;我的目标是有一个像这样的步骤:

  • 机器人:你有密码吗?
  • 我:intent_affirm
  • 机器人:告诉我
  • 我:1234-4567
  • -> 检测到故障(错误代码)
  • bot:代码似乎错误;你想和另一个重试吗?-> 用户想要重试
  • 我:intent_affirm
  • bot:好的,写吧
  • 我:intent_deny -> 替代,用户不想要
  • bot:好的,停止表单

如果未检测到故障,机器人也会停止表单。但是我想循环这个过程',机器人询问->如果错误,询问是否重试->如果是,再次询问代码->循环

这时我得到了这个:

version: "2.0"
stories:
- story: User has share code
  steps:
  - checkpoint: ask_share_code
  - action: utter_ask_has_share_code
  - intent: affirm
  - action: share_code_form
  - active_loop: share_code_form
  - slot_was_set:
    - requested_slot: share_code
  - active_loop: null
  - action: utter_form_submit

我有一个自定义操作“validate_share_code_form”和一个方法“validate_share_code”,它验证代码(确实)并填充插槽(或不填充):

def validate_share_code(self, slot_value, dispatcher, tracker, domain):
    if slot_value.lower() in self.share_code_db():
        return {"share_code": slot_value}
    else:
        return {"share_code": None}

是否有可能只有故事才有这种过程?或者,如果别无选择,使用自定义操作?

这是我想要实现的模型

图表

谢谢 !

4

0 回答 0