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

Docker部署FastAPI服务,客户端请求时服务崩溃求助

问题排查与修复方案

1. 核心崩溃原因:列表调用numpy专属方法

你的/predict接口代码中,从请求接收的data['features']是列表类型,但直接调用了仅numpy数组才有的reshape(1,-1)方法,这会触发AttributeError直接导致服务崩溃。

修复代码:

# 原错误代码
features = np.array(data['features'].reshape(1,-1))
# 修复后:先转numpy数组再调用reshape
features = np.array(data['features']).reshape(1,-1)

2. 模型路径稳定性优化(可选)

当前模型加载路径app/model.joblib在容器内是有效的(工作目录为/code,对应实际路径/code/app/model.joblib),但可以改为基于server.py文件的相对路径,避免后续工作目录变更影响:

import os
# 获取server.py所在目录的绝对路径,拼接模型文件名
model_path = os.path.join(os.path.dirname(__file__), 'model.joblib')
model = joblib.load(model_path)

3. 查看容器日志定位剩余问题

如果修复后仍崩溃,执行以下命令查看容器的错误日志,获取精准崩溃细节:

docker logs container-name

4. 请求参数校验优化(可选)

FastAPI推荐使用Pydantic模型定义请求体,替代直接使用dict,可自动校验参数格式,避免非法输入触发崩溃:

from pydantic import BaseModel

# 定义请求体结构
class PredictRequest(BaseModel):
    features: list[float]

@app.post('/predict')
def predict(data: PredictRequest):
    features = np.array(data.features).reshape(1,-1)
    # 后续预测逻辑不变

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 13:25:03