Botfront 1.0.5源码部署Rasa实例不可达训练按钮异常问题求助
Botfront 1.0.5源码安装运行问题排查
我正尝试参照Botfront官方教程,在本地Ubuntu 18.04环境下通过源码安装开发版Botfront 1.0.5。
我按照说明执行了所有命令后遇到报错:Rasa instance not reachable,同时Train按钮处于禁用状态。
注:我已经通过
botfront set-project <project_id>命令设置了项目ID,也在botfront.yml文件中做了交叉核验,确认配置正确。
我还尝试过将配置中的localhost替换为本地机器的IP地址,问题仍未解决;之后我修改了package.json文件中的数据库配置,将bf-os改为bf,对应配置项为:
"start:docker-compose.dev": "MODE=development BF_PROJECT_ID=bf MONGO_URL=mongodb://localhost:27017/bf meteor run"
当我在项目文件夹下执行botfront up启动完整Botfront服务,同时在源码文件夹下执行meteor npm run start:docker-compose.dev命令时,Train按钮变为可用状态,但会反复在启用/禁用状态之间波动,不过可以正常完成项目训练。
但此时我遇到了新的问题:训练完成后测试聊天机器人时,界面返回的是utterance_id而非原本的消息内容。
请问如何解决上述问题,让我可以成功从源码运行项目并完成部署?
问题解决方案
一、Rasa实例不可达、Train按钮波动问题修复
- 先停止所有冲突服务
首先执行botfront down关闭全局启动的Botfront服务,再执行pkill -f meteor杀死所有已启动的meteor进程。你同时启动两套Botfront服务会导致两者抢占MongoDB资源、争抢Rasa实例连接权限,这是按钮反复切换状态的核心原因,开发模式下仅需要启动源码目录下的服务即可。 - 校验Rasa服务运行状态
进入源码目录,执行docker-compose -f docker-compose.dev.yml up -d启动依赖的Rasa、MongoDB服务,执行curl http://localhost:5005/version确认Rasa服务正常返回版本信息,如果无返回,检查docker容器运行状态,确认5005端口没有被其他进程占用。 - 修正配置一致性
确认botfront.yml文件中的project_id值和package.json启动命令中的BF_PROJECT_ID值完全一致,同时检查botfront.yml中的rasa端点配置为http://localhost:5005,无多余路径后缀。
完成上述操作后,执行meteor npm run start:docker-compose.dev启动源码服务,Rasa不可达报错和按钮波动问题即可解决。
二、返回utterance_id而非回复内容问题修复
这个问题是因为响应模板没有正常同步到Rasa,或者Rasa无法正常拉取模板内容,按以下步骤排查:
- 校验语言配置
确认你在Botfront后台设置的项目默认语言,和你编写utterance响应时选择的语言完全一致,例如项目默认语言设置为英文,仅编写了中文回复的话,Rasa会找不到对应模板直接返回id。 - 触发模板全量同步
进入Botfront后台的「响应」管理页面,任意修改一个回复内容后保存,触发全量模板同步到Rasa,再重新训练模型即可。 - 修正Rasa端点配置
编辑源码目录下的docker-compose.dev.yml,找到Rasa服务的环境变量配置,将NLG服务地址中的host.docker.internal替换为你的本地网卡IP(不要用localhost/127.0.0.1),保存后重启Rasa容器,确保Rasa可以正常访问meteor服务拉取响应模板。 - 校验版本匹配
确认你使用的Rasa镜像版本和Botfront 1.0.5配套,必须使用Botfront官方提供的Rasa 2.x定制镜像,官方原生Rasa镜像会存在响应解析逻辑不兼容的问题。
三、生产部署注意事项
- 不要直接用
meteor run的开发模式部署生产环境,先执行meteor build打包编译产物,再用Node.js运行打包后的服务,或者基于官方Docker镜像做自定义修改。 - 生产环境所有组件(Botfront、Rasa、MongoDB)的地址配置不要用localhost,替换为实际可访问的内网IP或者域名,确保组件之间可以正常通信。
内容的提问来源于stack exchange,提问作者Ashish Kumar Patra
相关产品推荐
相关产品推荐

