You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用MLRun服务函数遇连接拒绝及超时错误,请求技术协助

MLRun服务部署与调用错误排查方案

针对你遇到的ConnectionRefusedError和部署阶段HTTP超时问题,以下是具体排查步骤与修复建议:

1. 确认MLRun核心服务状态

部署超时提示连接localhost:8080失败,说明MLRun API服务可能未启动或端口配置异常:

  • 执行mlrun status命令检查服务运行状态,确保输出显示为running
  • 若服务未启动,执行mlrun start启动本地MLRun服务
  • 若自定义了MLRun API端口,需在代码开头添加:
    import mlrun
    mlrun.set_env('MLRUN_API_URL', 'http://localhost:<你的自定义端口>')
    

2. 模型路径与权限校验

确保模型文件能被服务正常访问:

  • 验证project.get_artifact_uri('my_model')返回的路径有效,且my_model artifact确实存在于项目中
  • 本地测试通过但部署失败时,大概率是容器内路径映射问题,建议直接使用MLRun artifact store的完整路径作为model_path
  • 检查模型文件(.pkl)的读取权限,确保MLRun服务进程有权限访问

3. 服务函数部署配置优化

3.1 补充依赖镜像

默认mlrun/mlrun镜像可能缺少模型运行依赖(如scikit-learn),导致服务启动失败或缓慢:

serving_fn = mlrun.code_to_function('serving', kind='serving', image='mlrun/mlrun:latest')
# 添加模型运行所需依赖
serving_fn.spec.build.commands = ['pip install scikit-learn cloudpickle numpy']

3.2 延长部署超时时间

镜像构建或服务启动耗时过长会触发超时,可调整超时参数:

function_address = serving_fn.deploy(timeout=120)  # 设置为120秒超时

4. 代码细节优化

4.1 安全加载模型文件

修改load方法,使用上下文管理器确保文件正确关闭:

def load(self):
    model_file, extra_data = self.get_model('.pkl')
    with open(model_file, 'rb') as f:
        self.model = load(f)

4.2 规范请求数据格式

使用json.dumps生成标准JSON格式请求体,避免格式错误:

import json
my_data = json.dumps({"inputs":[[5.1, 3.5, 1.4, 0.2],[7.7, 3.8, 6.7, 2.2]]})

5. 查看部署日志定位问题

通过日志排查服务启动失败的具体原因:

mlrun logs serving --project getting-started-jovyan

或在代码中开启DEBUG日志:

serving_fn.set_logs_level('DEBUG')

6. 网络与端口检查

  • 确认服务部署的端口未被其他进程占用,可通过serving_fn.status.state查看服务运行状态
  • 本地部署时检查防火墙是否允许访问服务端口
  • Kubernetes环境部署需确认Ingress/NodePort配置正确,外部可访问

内容的提问来源于stack exchange,提问作者GAWADE HARISH HANUMANT

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 07:40:40