rasa3.X 自定义action的注册问题

rasa3.X 自定义action的注册问题

文章目录

  • rasa3.X 自定义action的注册问题
  • 前言
  • 一、问题重述
  • 二、问题解决


前言

幸好在这之前抽时间稍微看了一点django源码,让我对于python的导入机制有了一个概念。虽然还不是很确切的知道python import机制,不过在看到类似_import_submodules,importlib.import_module等方法的时候,也能大概知道要干什么。


提示:以下是本篇文章正文内容,下面案例可供参考

一、问题重述

我详细询问了GPT-4-turbo,它给出的回答也是没有参考价值的,这个时候,我就下定决心要去看源码,看它具体是一个怎么样的导入过程。

我使用了pycharm,然后配置如图1。
在这里插入图片描述
图1

二、问题解决

debug进去一点一点看,发现了如下的调用链:

  • rasa_sdk.endpoint
    • run
    • create_app
    • executor.register_package
  • rasa_sdk.executor
    • register_package
    • self._import_submodules(package)
    • self._register_all_actions()
    • self.register_action(action)

顺着这个调用链,我最终发现了,原来rasa init创建项目,是把actions.py放到了actions包里面,然而我又创建了一个action.py与action包同级,就导致了导入错乱。

知道了这个问题后,我就把自建的actions.py代码放到那个里面,然后删除自建的。

那么,现在运行就一切ok了吗?

不。如果actions.action.py中还导入了例如utils等自建的代码,因为代码层级会出现图2的现象

在这里插入图片描述
图2

没办法,要不就保留这种错误,但是可以运行,要不就是把actions包删了,建一个与config同级的actions.py。这也就是为什么,现成的项目在actions不多的情况下,把actions拿出来,而不是放到一个包里面。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/665146.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

QT学习日记 | 初始QT

目录 一、创建QT文件 二、目录结构讲解 1、.pro文件 2、源文件与头文件 3、编译运行 4、界面文件 三、梦开始的地方(Hello World!) 1、代码方式 2、拖拽方式 四、Qt中的“容器” 五、Qt的对象树机制 1、对象树的引入 2、对象树…

MySQL进阶之锁(全局锁以及备份报错解决)

锁 全局锁 全局锁就是对整个数据库实例加锁,加锁后整个实例就处于只读状态,后续的DML的写语句,DDL语 句,已经更新操作的事务提交语句都将被阻塞。 其典型的使用场景是做全库的逻辑备份,对所有的表进行锁定&#xff…

030-安全开发-JS应用NodeJS指南原型链污染Express框架功能实现审计

030-安全开发-JS应用&NodeJS指南&原型链污染&Express框架&功能实现&审计 #知识点: 1、NodeJS-开发环境&功能实现 2、NodeJS-安全漏洞&案例分析 3、NodeJS-开发指南&特有漏洞 演示案例: ➢环境搭建-NodeJS-解析安装&…

MySQL知识点总结(三)——事务

MySQL知识点总结(三)——事务 事务事务的四大特性ACID原子性一致性隔离性持久性 脏读、幻读、不可重复读脏读不可重复读幻读 隔离级别读未提交读已提交可重复读串行化 事务的原理InnoDB如何实现事务的ACID事务的两阶段提交redo log与binlog的区别事务两阶…

【DevOps】产品需求文档(PRD)与常见原型软件

文章目录 1、PRD介绍1.1、概述1.2、前提条件1.3、主要目的1.4、关键内容1.5、表述方式1.6、需求评审人员1.7、一般内容结构 2、需求流程3、常见原型软件3.1、Word3.2、Axure3.2.1、详细介绍3.2.2、应用分类3.2.3、优缺点 3.3、摹客RP3.4、蓝湖3.5、GUI Design Studio 1、PRD介绍…

业务流程自动化平台在制造业应用案例,助力业务自动化、智能化

捷昌驱动成立于2000年,并于2018年9月在上海证券交易所上市,是一家专注于线性驱动产品研发、生产及销售的科技集团。 公司整合全球资源,为智慧办公、医疗康护、智能家居、工业自动化等关联产业提供驱动及智能控制解决方案,以科技驱…

C# 浅克隆与深克隆

在C#中,浅克隆(Shallow Clone)和深克隆(Deep Clone)是两种常见的对象克隆技术,用于创建对象的新副本。 它们的主要区别在于复制对象的层次和属性的处理方式。 浅克隆(Shallow Copy)…

荣耀手机如何录屏?在线分享3个录屏方法

荣耀手机如何录屏?荣耀手机录屏是一项非常实用的功能,它可以帮助我们轻松记录手机屏幕上的内容,无论是游戏攻略、教育学习还是工作演示,都能够方便地进行录制。通过录屏,我们可以随时随地记录和分享自己的操作和见解。…

探究Steam爆款游戏”幻兽帕鲁“:玩家评价揭秘

探究Steam爆款游戏”幻兽帕鲁“:玩家评价揭秘 文章目录 探究Steam爆款游戏”幻兽帕鲁“:玩家评价揭秘1 背景描述2 数据说明3 数据来源4 问题描述5 数据探索与预处理5.1 数据加载5.2 数据清洗 6 数据分析6.1 评论分布分析6.2 评论内容情感分析6.3 地理分布…

寒假作业1

1、栈和队列的区别? 栈:先进后出,队列:先进先出栈:只允许在一端进行插入和删除队列:允许在队尾插入,队头删除的线性结构都是操作受限的线性表,插入和删除都只能在端点处进行&#xf…

02-03

内核提供的通信方式 1、有名管道和无名管道 有名管道和无名管道都属于管道通信,通过在内核空间创建一个特殊的文件(管道文件),一个进程将数据写入管道,另一个进程从管道中读取数据,从而实现通信。管道文件…

力扣热门100题刷题笔记 - 2.两数相加

力扣热门100题 - 2.两数相加 题目链接:2.两数相加 题目描述: 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返…

图书|基于Springboot的图书管理系统设计与实现(源码+数据库+文档)

图书管理系统目录 目录 基于Springboot的图书管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、个人中心 2、管理员管理 3、用户管理 4、图书出版社管理 5、公告类型管理 6、所在书架管理 7、图书类型管理 8、论坛管理 9、公告信息管理 10、图书信…

【数据结构】(分治策略)中位数的查询和最接近点对问题

中位数查询: 寻找一组字符串中第k小的数,返回其值和下标。 不可以有重复值(在缩小规模的时候,会导致程序死循环) 相对位置的转换体现了分治策略的思想。> 划分函数 int partition(int *nums,int left, int rig…

NuxtJS3配置多环境变量

1.在根目录添加开发环境.env.development # 本地环境 NODE_ENV development VUE_APP_NUXT_API_URL /api NUXT_BASE_PORT 3000 NUXT_BASE_LINK http://192.168.21.80:6000 NUXT_SYSTEM_TITLE xx管理系统2.在根目录添加测试环境.env.test # 测试环境 NODE_ENV test NUXT_…

Jmeter 自动化性能测试常见问题汇总

一、request 请求超时设置 timeout 超时时间是可以手动设置的,新建一个 http 请求,在“高级”设置中找到“超时”设置,设置连接、响应时间为2000ms。 1. 请求连接超时,连不上服务器。 现象: Jmeter表现形式为&…

SSL证书过期后网站是否能够正常访问?

SSL证书是确保网站数据传输安全和用户信任的重要组成部分。然而,一旦SSL证书过期,网站是否依然能够正常访问呢?本文将详细探讨SSL证书过期后对网站的影响以及相应的解决方法。 SSL证书过期后,网站的状态将发生以下变化&#xff1a…

作为开发人的我们,怎么可以不了解这些?

​​​​​​​必备技能: 文章结尾处,有资源获取方式 Spring Spring是一个轻量级的Java框架,它可以用于开发各种Java应用程序。Spring提供了丰富的功能,包括IoC容器、AOP、事务管理、Web开发、安全管理等等。Spring的IoC容器可以…

SQL sever2008中创建用户并赋权

一、创建数据库dream CREATE DATABASE dream; 二、创建登录用户XZS 法一:使用SSMS创建 通过查询 sys.syslogins 系统视图来确定当前登录是否具有系统管理员权限。执行以下查询语句: SELECT name, isntname FROM sys.syslogins WHERE sysadmin 1;选…

初始mach-o文件及在项目中应用

本文字数:2250字 预计阅读时间:15分钟 01 认识mach-o的必要性 了解mach-o的结构可以帮助认识系统加载二进制文件的动态链接和静态链接。应用层面,使用initialize的c函数计算启动时间耗时也需要以mach-o的结构知识为铺垫。还可以用在使用clang…