R中MLFlow搜索已注册模型失败:POST请求404错误排查
问题原因与解决提示
核心原因
- MLFlow客户端与服务器版本不兼容:R版mlflow 2.11.1属于MLFlow 2.x系列,该版本中
mlflow_search_registered_models接口使用POST请求访问/mlflow/registered-models/search端点,但如果你的MLFlow服务器版本是1.x,该接口仅支持GET请求,端点逻辑不匹配,因此会返回404错误。 - 跟踪URI配置异常:如果R客户端配置的跟踪URI指向的不是正确的MLFlow Tracking Server,或者服务器存在反向代理、防火墙拦截导致路径被篡改,也会出现找不到端点的情况。
解决步骤
- 对齐客户端与服务器版本:
- 运行
mlflow --version查看MLFlow服务器版本,如果服务器是1.x,要么将服务器升级到2.11.1(与R客户端版本一致),要么将R版mlflow降级到与服务器匹配的1.x版本(比如使用devtools::install_version("mlflow", version = "1.30.0")安装指定版本)。
- 运行
- 验证跟踪URI正确性:
- 确认R中
mlflow_set_tracking_uri()设置的地址无误,可通过mlflow_get_tracking_uri()查看当前配置。尝试直接访问该URI,确保服务器正常运行且无网络拦截。
- 确认R中
- 手动测试接口兼容性:
- 使用curl命令测试服务器接口:
# 测试GET请求(适用于1.x服务器) curl -X GET <你的跟踪URI>/mlflow/registered-models/search?filter=name%3D%27model_xyz%27 # 测试POST请求(适用于2.x服务器) curl -X POST <你的跟踪URI>/mlflow/registered-models/search -H "Content-Type: application/json" -d '{"filter": "name='\''model_xyz'\''"}' - 如果GET请求成功而POST失败,说明服务器版本过低,必须调整版本对齐。
- 使用curl命令测试服务器接口:
内容的提问来源于stack exchange,提问作者Sijan Bhandari
相关产品推荐
相关产品推荐

