对话机器人(七)——RASA:基于规则

1. fallback

解决机器人无法处理的情况。如,用户表达不清楚,超出机器人能提供服务的范围,这时需要“兜底”的fallback操作。

a. NLU fallback

负责处理NLU阶段理解用户意图困难或模糊的情况。FallbackClassifier组件,可见pipline。

如:

pipline: 
   - name: FallbackClassifier
     threshold: 0.6
     ambiguity_threshold: 0.1

若所有意图分类组件预测出的结果中,最高的置信度小于0.6(threshold值)或最高的前2个意图得分之差不超过0.1(ambiguity_threshold),NLU的意图就会被替换成nlu_fallback

rules:
- rules: 要求用户重说一次
   steps: 
      - intent: nlu_fallback
      - action: utter_please_rephrase

将nlu_fallback映射成utter_please_rephrase,一旦nlu_fallback意图出现,就一定会执行utter_please_rephrase动作,utter_please_rephrase动作会渲染同名模板,用户可以得到fallback消息。

b. 策略 fallback

预测下一个动作时,若置信度不高,或得分最高的2个动作间得分差很小,需要fallback。

pipline: 
   - name: RulePolicy
     core_fallback_threshold: 0.3
     core_fallback_action_name: "action_default_fallback"
     enable_fallback_prediction: True   

若所有的策略预测动作得分小于0.3(core_fallback_threshold)时,选择action_default_fallback作为输出动作。默认的core_fallback_threshold会渲染名为utter_default模板,返回给用户。

2. 意图触发动作

a. 内建意图触发动作

RulePolicy为action_restart、action_session_start、action_action_back提供了对应的意图restart、session_start、back,建立意图到动作的映射。当这些意图出现时会自动触发对应的动作,实现会话级别的控制。

通过输入/restart、/session_start、/back表达action_restart、action_session_start、action_action_back意图,从而完成执行对应动作的目的。

b. 自定义意图触发动作

保证当某个意图出现时,无论什么样的上下文都能百分百触发某个或多个特定的动作。——RulePolicy。

rules:
- rule: 从some_intent 到some_action 的映射
  steps:
  - intent: some_intent
  - action: some_action

用户表达了some_intent的意图后,PulePolicy能百分百触发some_action动作。

参考文献:
[1] 孔小泉,王冠.Rasa实战:构建开源对话机器人[M].电子工业出版社.2022:201.
[2] RASA官方文档 https://rasa.com/docs/rasa/rules

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值