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

Rasa机器人action_default_fallback未识别问题求助

Rasa回退动作无法识别问题排查方案

一、代码语法与缩进错误(核心原因)

你提供的actions.py存在多处语法问题,会导致动作类无法被正确加载:

  • 缩进混乱:run方法内的代码块(如user_message、url、headers等)缩进不一致,Python对缩进严格要求,必须统一用4个空格缩进。
  • 字符串未闭合:错误处理部分的return "Sorry, I couldn't generate a response at the moment.缺少闭合双引号,触发语法错误。
  • 依赖未导入:代码使用了requests但未导入,需在文件顶部添加import requests,同时确保已安装依赖(执行pip install requests)。
  • 返回值不符合要求:动作的run方法必须返回List[Dict[Text, Any]]类型,原代码错误返回字符串。

修正后的actions.py示例:

from typing import Text, Dict, Any, List
from rasa_sdk import Action, Tracker
from rasa_sdk.executor import CollectingDispatcher
import requests

class ActionDefaultFallback(Action):
    def name(self) -> Text:
        return "action_default_fallback"

    def run(
        self,
        dispatcher: CollectingDispatcher,
        tracker: Tracker,
        domain: Dict[Text, Any],
    ) -> List[Dict[Text, Any]]:
    
        # 获取用户最新消息
        user_message = tracker.latest_message.get('text')

        url = 'https://api.openai.com/v1/chat/completions'
        headers = {
            'Authorization': 'Bearer sk-xxxxxxxxxxxxxxxxxxxxxxXD',
            'Content-Type': 'application/json'
        }
        data = {
            'model': "gpt-3.5-turbo",
            'messages': [{'role': 'user', 'content': user_message}],
            'max_tokens': 100
        }
        response = requests.post(url, headers=headers, json=data)

        if response.status_code == 200:
            ai_response = response.json()['choices'][0]['message']['content']
            dispatcher.utter_message(ai_response)
        else:
            dispatcher.utter_message(text="Sorry, I couldn't generate a response at the moment.")
        
        return []

二、确认domains.yml的动作注册

确保domains.yml的actions列表中正确包含该动作,格式如下:

actions:
  - action_default_fallback
  # 其他自定义动作...

三、正确启动动作服务器

自定义动作需要单独运行动作服务器,不能仅启动Rasa核心服务:

  1. 执行命令启动动作服务:
rasa run actions
  1. 同时启动Rasa主服务:
rasa run --enable-api

四、验证Config.yml配置

你的config.yml中回退相关配置是正确的,可再次确认:

  • FallbackClassifier的阈值设置合理,确保能触发回退
  • RulePolicy的core_fallback_action_name与动作类返回的名称完全一致(注意大小写和引号)

内容的提问来源于stack exchange,提问作者karan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 23:17:04