You need to enable JavaScript to run this app. 本地启动Rasa X后,浏览器访问出现500请求失败错误如何解决
优惠活动
大模型
产品
解决方案
定价
更多

本地启动Rasa X后,浏览器访问出现500请求失败错误如何解决

Rasa X本地启动后访问出现500报错排查与解决

问题现象

本地环境完成Rasa X启动流程后,浏览器访问服务地址(默认http://localhost:5002)时,页面弹出“Request failed with status code 500”的报错。配套参考材料包含1份浏览器端报错截图、3份服务控制台运行日志截图,可还原完整异常触发链路。

控制台核心报错日志

两类先后触发的异常日志可直接定位问题方向:

  1. 初次触发的接口调用异常
    [2021-01-15 07:30:20 +0530] [11592] [ERROR] Exception occurred while handling uri: 'http://localhost:5002/api/auth'
    Traceback (most recent call last):
      File "c:\users\adity\venv\lib\site-packages\rasa\cli\x.py", line 494, in run_locally
        local.main(
    TypeError: main() got an unexpected keyword argument 'domain_path'
    
  2. 异常处理流程中触发的二次兼容报错
    Traceback (most recent call last):
      File "c:\users\adity\venv\lib\site-packages\sanic\app.py", line 914, in handle_request
        response = await response
      File "c:\users\adity\venv\lib\site-packages\sanic_jwt\endpoints.py", line 36, in post
        access_token, output = await self.responses.get_access_token_output(
      File "c:\users\adity\venv\lib\site-packages\sanic_jwt\responses.py", line 19, in get_access_token_output
        access_token = await instance.auth.generate_access_token(user)
      File "c:\users\adity\venv\lib\site-packages\sanic_jwt\authentication.py", line 477, in generate_access_token
        return jwt.encode(payload, secret, algorithm=algorithm).decode("utf-8")
    AttributeError: 'str' object has no attribute 'decode'
    

根因判定

两类报错本质都是本地Python虚拟环境下的依赖版本不匹配导致的:

  • 第一类参数不兼容报错:rasa-x本地启动流程调用rasa核心CLI模块时,传入的domain_path参数与当前安装的rasa核心版本的main()方法签名不匹配,属于跨版本安装时接口定义不一致导致的调用错误。
  • 第二类属性缺失报错:属于PyJWT版本与sanic-jwt代码逻辑不兼容。旧版PyJWT的jwt.encode()方法返回bytes类型,需要额外调用.decode("utf-8")转为字符串;但PyJWT 2.0.0及以上版本中,jwt.encode()直接返回str类型,不再支持decode方法,与旧版sanic-jwt的代码逻辑冲突。

标准排查思路

  • 核对当前虚拟环境下的依赖版本:通过pip list命令导出rasa、rasa-x、sanic-jwt、PyJWT的安装版本,对比官方版本兼容矩阵,确认是否存在跨版本安装的问题。Windows环境可执行pip list | findstr "rasa jwt sanic"快速筛选相关依赖,Linux/macOS可执行pip list | grep -E "rasa|jwt|sanic"获取版本信息。
  • 顺着报错链路核对方法签名:定位rasa-x启动模块中调用rasa核心CLI的代码位置,确认传入的domain_path参数是否是当前rasa版本不支持的新增参数。
  • 核对依赖间的逻辑兼容性:查看sanic-jwt源码中调用jwt.encode()后的处理逻辑,确认与当前安装的PyJWT版本的返回值类型是否匹配。

可落地解决方法

  • 优先选择版本固定方案:卸载当前环境下不匹配的依赖,按照官方推荐的兼容版本组合重新安装。对应2021年初的这个版本线,匹配的稳定组合为rasa==2.0.8、rasa-x==0.35.0、PyJWT==1.7.1、sanic-jwt==1.4.0,可从根源解决参数不兼容、decode方法缺失两类问题。执行安装命令:pip install rasa==2.0.8 rasa-x==0.35.0 PyJWT==1.7.1 sanic-jwt==1.4.0 --force-reinstall
  • 临时源码适配方案:如果不想降级PyJWT版本,可手动修改sanic-jwt的报错位置源码,将return jwt.encode(payload, secret, algorithm=algorithm).decode("utf-8")中的.decode("utf-8")后缀去掉,直接返回编码后的字符串即可适配新版PyJWT。注意:这类手动修改会在依赖重装后失效,仅适合临时调试场景。
  • 环境清洁检查:启动前清理本地残留的Rasa X配置缓存、杀掉占用5002端口的残留进程,避免残留进程引发额外的接口调用异常。

内容的提问来源于stack exchange,提问作者adityarawal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.08 20:15:02