部署Rasa至Okteto后无法对接WordPress的问题求助
Rasa机器人部署Okteto对接WordPress连接问题排查与解决
问题核心诊断
- socket.io请求目标错误:rasa-actions-server报错
Requested URL /socket.io not found,因为socket.io服务由rasa-server提供,actions server仅负责处理自定义动作,不具备socket.io端点。而你的WordPress对接脚本中,socketUrl错误指向了rasa-actions-server的地址,导致请求404。 - 容器内部服务调用配置错误:endpoints.yml中action_endpoint使用
localhost:5055,在Docker容器网络环境下,应该用服务名rasa-actions-server来访问,否则rasa-server无法正确调用actions服务,可能引发500错误。
修复步骤
1. 修正WordPress对接脚本的socketUrl
将socketUrl改为rasa-server的Okteto公开域名(替换为你实际的rasa-server域名):
!(function () { let e = document.createElement("script"), t = document.head || document.getElementsByTagName("head")[0]; (e.src = "https://cdn.jsdelivr.net/npm/rasa-webchat@1.x.x/lib/index.js"), (e.async = !0), (e.onload = () => { window.WebChat.default( { initPayload: '/greet', customData: { language: "en" }, socketUrl: "https://rasa-server-mohammedayanthegreat.cloud.okteto.net", // 改为rasa-server的Okteto域名 showMessageDate: true, embedded:true, }, null ); }), t.insertBefore(e, t.firstChild); })();
2. 更新endpoints.yml的action_endpoint配置
修改为容器网络内的服务名访问:
action_endpoint: url: "http://rasa-actions-server:5055/webhook"
3. 确认Okteto部署配置
确保docker-compose.yml中rasa-server的public: true配置生效,Okteto会为该服务生成公开可访问的域名。
4. 重新部署服务
在Okteto中重新部署,等待rasa-server完成模型训练并正常启动,确认启动日志中包含socket.io通道加载的相关信息。
验证方法
- 访问rasa-server域名的
/socket.io路径,如https://your-rasa-server-domain.cloud.okteto.net/socket.io,应返回正常的socket.io响应(无404错误)。 - 打开WordPress页面,检查Chrome控制台是否仍有404/500错误,发送测试消息验证机器人是否正常响应。
内容的提问来源于stack exchange,提问作者Ayan Shaikh
相关产品推荐
相关产品推荐

