
RASA学习
文章平均质量分 65
分享在学习使用RASA过程中遇到的报错及对应解决方法,以及其他使用RASA的个人总结。
天飓
鱼跃此时海,花开彼岸天。
展开
-
让语音助手做道数学题
不过,大家不要忘了,我是语音助手,输入的是中文!所以,我要先判断输入的算式中是否包含四个运算符的对应中文单词(加、减、乘、除),如果包含了,那么就用+,-,*,/替换中文字。可是,我忘了,我用的是MitieNLP,而且我已经在nlu中定义了三个标签了,果然,当增加这个equation标签后,我的rasa train又双叒叕陷入了无止尽……Kill了rasa train的进程,重新定义nlu、domain和story,这次学乖了,我去掉了nlu中的新标签,在domain里增加了一个form,具体如下图。原创 2024-11-20 11:37:35 · 1129 阅读 · 0 评论 -
利用tracker.latest_message实现和rasa bot聊天气
同样的方法,但这次不用get_slot,而是直接获取最新的用户话本(user text)来做配对。同样的,domain里也不需要设置多个utter话术了,直接变成一个action_about_weather,story也合并成一个。对于三种天气,分别定义了要下雨了,正在下雨和好天气三个聊天意图,然后在domain中针对这三个intent又分别定义了对应的utter_***话术。但是问题来了,天气的种类远远不止上述三种,那么我是不是要每一种天气开头的聊天都要单独定义一遍?答案不是不可以,可会让人觉得有点傻。原创 2024-10-28 15:24:30 · 445 阅读 · 0 评论 -
一次RASA TRAIN的时间记录
Rasa train的训练究竟要用多长时间?昨天在做新一轮训练时,我记录了这个时间。开始前还是要先说明下,我用的是rasa1.4版,NLP是MitieNLP,系统是32位的Linux raspberrypi 4.19.57-v7+,armv7l GNU/Linux。Rasa train开始时间:2024-10-27 20:10 * 从正式执行rasa train命令开始到完成core model training,总耗时5分钟。 * 开始执行nlu model training,Part原创 2024-10-28 15:19:09 · 275 阅读 · 0 评论 -
label+actions实现rasa bot的问答交互
对于上述应答情景,我在程序里先定义了两个数组,第一个是实际功能清单,第二个是功能关键字。rasa bot在判断了用户问题并转到action后,程序会执行tracker.get_slot("behavior"),获得user问题中对应的label信息,如果这个label为空,则按照情景3回复;如果label不为空,则让label的内容与功能关键字进行匹配,匹配成功按照情景1回复,否则就是按照情景2回复。比如我在nlu中定义的问题是询问语音助手能做什么,得到的回复应该是两种可能:1.是的,我具备***功能;原创 2024-10-23 10:14:12 · 363 阅读 · 0 评论 -
使用MitieEntityExtractor训练中文NLU速度慢的问题
Rasa train的时候,如果pipeline中包含了MitieEntityExtractor,那么在训练中文NLU的时候,NLU中不能放置过多的entity标签——如“[今天](date)”,其中date就算一个。否则,训练进行到part II train segment classify的时候,训练时间会无限延长(可能几个小时都没结束)。就我的树莓派3B系统来看,在NLU里放三个entity标签可以用正常时间训练,多一个,训练时间就不可控。原创 2024-09-29 08:43:46 · 128 阅读 · 0 评论 -
首次在rasa中使用form的个人小结
和普通action的定义一样,先要定义一个class,如Class ActionQueryTaskForm(FormAction),注意括弧内要填写“FormAction”,代表这是一个form action。首先需要在domain中定义form,同时也要定义这个form会引用那个entity,这些在slot中也要一起定义。当然,rasa中的form使用必定还有其他内容,等我用到的时候再来小结。》的时候,我尝试使用了form,这是我第一次在rasa中使用form,今天空下来了,自己小结下。原创 2024-09-15 14:30:49 · 446 阅读 · 0 评论 -
树莓派智能语音助手实现音乐播放
用sounddevice编写的音乐播放功能,结合rasa的语义解析,让树莓派语音助手也可以像小爱音箱一样,通过语音指令实现音乐播放。原创 2024-09-14 20:47:07 · 1820 阅读 · 0 评论 -
让树莓派智能语音助手实现定时提醒功能
用一个简单的threading.Timer()函数实现树莓派语音助手的定时提醒功能,在这里,rasa主要承担了语义解析职责,程序的实现还是在语音助手部分。原创 2024-09-09 15:32:51 · 761 阅读 · 0 评论 -
让自家的智能语音助手实现todo任务的添加
基于rasa1.4.0版本所开发的让树莓派智能语音助手实现todo task增删查功能。原创 2024-08-31 21:33:14 · 1104 阅读 · 0 评论 -
遇到“Interpreter parsed an intent ‘xxx‘ which is not defined in the domain“报错
遇到这个报错,不仅仅要检查domain.yml,还要查看nlu.md这个文件,要比对两个文件中intent的命名是否一致?我这次就是nlu中对应的intent名字少加了一个’s’造成的。从字面意思来看是这个”show_tasks”的intent没有在domain中定义。但是我打开domain.yml检查,domain里面是包含了这个intent的。知道问题后,可以修改nlu也可以修改domain文件,同时不要忘了再检查下stories里面有没有需要调整。原创 2024-08-31 20:18:52 · 363 阅读 · 0 评论 -
rasa train模型训练中遇到killed
上网查了,有看到说是模型数据太大造成训练内存不足而导致了killed。我的模型数据肯定不大,不过我加载了 MITIE model,这个量不小。而且,我的SWAP虚拟内存也的确下调过。于是,重新设置一下SWAP虚拟内存。当时没有及时截屏,图片是从网上截取的。这个错误的发生很突然,在这之前都是显示正常的模型训练过程信息,然后就突然出现Killed,接着就退出了训练。注:1024即1G,只要你的TF卡剩余容量允许,这个值建议大点好。这两天在用rasa train训练模型的时候,遇到了一次。原创 2024-08-23 08:49:09 · 484 阅读 · 0 评论 -
再谈asyncio.exceptions.TimeoutError报错
大多数情况,的确是actions.py有问题,重新编译后就能正常连接,但也有少部分时间actions.py是ok的,模型也是ok的不需要重新训练,但运行rasa shell的时候就是会遇到。用sudo nano打开后,在一排import信息后就马上能看到DEFAULT_STREAM_READING_TIMEOUT_IN_SECONDS=10(默认值是10),直接把10改成30,然后存盘退出,再运行rasa shell,对于这样的情况烦不胜烦,难道就没其他方法了吗?问题,只要把对应时间设定调整下就ok了。原创 2024-08-23 08:47:38 · 917 阅读 · 0 评论 -
树莓派智能语音助手之聊天机器人-RASA
树莓派3B安装rasa-1.4.0全过程原创 2024-08-17 20:12:28 · 1677 阅读 · 0 评论 -
执行rasa shell 遇到asyncio.exceptions.TimeoutError报错
犹豫了会儿,咬咬牙,重新恢复几个文档里面的新增actions部分,然后把actions.py也再次恢复。回忆之前正常的场景,我把actions server先关了,然后把actions.py重新变成空白的,再跑rasa shell,没有解决。把2个报错的问题解决了,成功执行rasa run actions,再执行rasa shell,还是一样,在我发送了消息,等到chatbot回复的时候,。先不管了,开了一个新的terminal,输入rasa run actions,第一次执行果然遇到报错《……原创 2024-08-21 06:24:52 · 845 阅读 · 0 评论 -
树莓派智能语音助手之首次RASA模型训练
终于在树莓派上安装了rasa(见《树莓派智能语音助手之聊天机器人-RASA》https://blog.youkuaiyun.com/hydekong/article/details/141285925),接下来就要学习怎么训练模型,逐步实现真正的语音助手。这就是我训练的第一个中文模型。可以看到,根据user输入的“你好”,chatbot最终判断消息意图是greet,于是chatbot会回复“你好呀”。个人理解,nlu收录的是user的可能会话,在整个对话过程,chatbot会根据这个文件来预测user消息的意图。原创 2024-08-20 12:04:45 · 887 阅读 · 0 评论 -
树莓派3B运行rasa init和rasa shell遇到的tensorflow报错总结
介绍树莓派3B在运行rasa init和rasa shell时候遇到的报错及解决办法原创 2024-08-17 21:07:01 · 1019 阅读 · 0 评论 -
第一次运行rasa run actions遇到2个报错——与markupsafe和greenlet有关
解决:我的rasa是1.4.0版,所需要的gevent是1.4.0。然后我先把gevent降级到1.4.0,降级成功的同时看到pip resolver的提示说对应的greenlet版本需要0.4.14,于是照着做。分析:这个报错是我解决了报错1之后立马出现的,但其实和markupsafe没关系,而是和gevent有关。分析:出现这个报错表明你的markupsafe版本太新了,在2.1之后,markupsafe里就没有soft_unicode了,改成了soft_str。原创 2024-08-21 05:37:32 · 307 阅读 · 0 评论