You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rasa后端聊天机器人的超出范围及意外查询处理问题

解决Rasa机器人无法处理超出范围及意外查询的问题

1. 添加out_of_scope意图及训练数据

在NLU训练文件(如nlu.yml)中新增专门的out_of_scope意图,覆盖各类超出业务范围的场景,包含纯数字、随机字符串、无关问题等示例:

nlu:
- intent: out_of_scope
  examples: |
    - 123456
    - asdfghjkl
    - 今天天气怎么样
    - 你会做饭吗
    - #$%^&*()

2. 设置NLU置信度阈值

在config.yml的pipeline配置中,为意图分类器设置置信度阈值,确保只有置信度达标的请求才匹配业务意图,否则触发低置信度处理逻辑(以DIETClassifier为例):

pipeline:
  - name: DIETClassifier
    confidence_threshold: 0.7  # 可根据实际效果在0.6-0.8区间调整
    # 其他pipeline配置项...

同时在domain.yml中设置全局意图置信度阈值:

intents:
  - your_business_intent_1
  - your_business_intent_2
  - out_of_scope
  # 其他业务意图...
confidence_threshold: 0.7

3. 用Rules定义超出范围查询的处理逻辑

在rules.yml中添加规则,匹配out_of_scope意图或低置信度情况,返回指定提示:

rules:
- rule: 处理超出范围的查询
  steps:
  - intent: out_of_scope
  - action: utter_out_of_scope
- rule: 处理低置信度查询
  steps:
  - intent: nlu_fallback
  - action: utter_out_of_scope

在domain.yml中定义对应的回复模板:

responses:
  utter_out_of_scope:
  - text: "I am not trained for such queries"

4. 配置默认回退动作防止无限循环

若机器人出现无限处理循环,可通过配置默认回退动作限制触发次数。在domain.yml中声明动作:

actions:
  - action_default_fallback

也可自定义简单的回退动作替代默认逻辑,避免重复进入处理流程。

5. 重新训练模型

完成所有配置后,重新训练NLU和Core模型:

rasa train

测试时,输入超出范围的查询或随机内容,机器人会自动返回指定提示,不再随机匹配业务意图或陷入循环。

内容的提问来源于stack exchange,提问作者Geethapriya G H

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 02:33:14