基于RASA构建特定规则聊天机器人的可行性及替代方案问询
问题解答
1. 能否用Rasa构建符合要求的聊天机器人?
当然可以,针对你提出的三个核心需求,可通过以下方式实现:
- 检测遗漏问题并提示
借助Rasa的对话追踪器(Tracker Store)记录用户已发起的提问。预先定义好需覆盖的问题清单(Q1、Q2、Q3),在触发对话结束的自定义动作中,对比已记录的提问和预设清单,筛选出未被问到的问题,向用户发送提示。 - 提示后重置问答流程
在发送遗漏提示的自定义动作里,调用Rasa Tracker的接口清空对话状态(包括已记录的提问历史、槽位、实体等),让机器人回到初始状态,重新启动问答流程。 - 重复问答时返回不同答案
为每个问题维护对应的答案列表,同时用槽位记录每个问题已使用过的答案索引。当用户再次提问该问题时,从答案列表中排除已使用的选项,随机或按顺序选取未用过的答案返回,并更新槽位中的已用记录。若所有答案都已使用过,可重置该问题的已用记录。
2. 替代方案
如果不选用Rasa,以下方案也能满足需求:
- 自定义Python脚本
结合python-telegram-bot、discord.py等消息开发库,自行编写对话状态管理、遗漏问题检测、答案轮换逻辑,适合需求简单、需要高度定制的场景。 - Botpress
开源对话机器人平台,支持可视化流程设计,可通过自定义代码块实现状态追踪、答案轮换等功能,自带对话存储,能快速实现需求。 - Microsoft Bot Framework
提供完整的对话开发工具链,通过Waterfall对话框管控流程,利用Bot State存储已提问记录和已用答案信息,实现提示与重置逻辑。
内容的提问来源于stack exchange,提问作者Ahmed
相关产品推荐
相关产品推荐

