我正在寻找一种以 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}
是否有可能只有故事才有这种过程?或者,如果别无选择,使用自定义操作?
这是我想要实现的模型
谢谢 !