Rasa 1.8迁移至2.0后运行rasa shell时action.py文件报错求解决方案
Rasa 1.8 升级至 2.0 版本 action.py 报错解决方案
以下是该场景下的常见故障排查及修复步骤,按优先级执行即可定位问题:
- 校验自定义Action导入路径
Rasa 1.x 版本允许从rasa.core.actions导入Action基类,2.0版本后所有自定义Action相关的依赖都迁移到了rasa-sdk包中,旧的导入路径已完全废弃。请替换所有相关导入语句为2.0规范写法:from rasa_sdk import Action, Tracker from rasa_sdk.executor import CollectingDispatcher from rasa_sdk.types import DomainDict - 修正run方法的参数与返回值规范
Rasa 2.0 对自定义Action的run方法做了强制校验:- 参数顺序必须严格为
dispatcher、tracker、domain,参数类型标注建议补全 - 方法必须返回列表类型的事件对象,无自定义事件时需要显式返回空列表
return [],不能省略return语句
- 参数顺序必须严格为
- 校验核心依赖版本匹配
Rasa核心包与rasa-sdk包的版本必须完全对齐,否则会出现接口不兼容报错。执行以下命令确认版本:rasa --version && rasa_sdk --version
若版本不一致,执行重装命令统一为2.0正式版:pip install rasa==2.0.0 rasa-sdk==2.0.0 - 核对Action名称匹配关系
Rasa 2.0对Action名称的校验更严格,需确认每个自定义Action类的name属性值,与domain.yml中actions列表内的对应条目完全一致,大小写、拼写都不能有偏差。
完成以上排查后,可执行rasa run actions --debug启动动作服务调试模式,通过终端输出的详细错误栈定位剩余问题。
内容的提问来源于stack exchange,提问作者Nithin_crypto
相关产品推荐
相关产品推荐

