现象
在FastGPT V4.9.7私有部署版本中,两种场景会出现相同报错:一是使用vllm加载Qwen2.5-7B-Instruct-1M模型测试时,二是使用Xinference加载Qwen2.5 32B通过MCP工具测试时。报错日志显示[Warn] 2025-05-01 03:07:07 LLM response error {"requestBody":{"model":"Qwen2.5-7B-Instruct-1M","messages":[{"role":"user","content":"hi"}],"stream":true}},同时接口/api/core/ai/model/test?model=Qwen2.5-7B-Instruct-1M返回400状态码且无响应体,错误信息为Error: 400 status code (no body)。用户确认终端直接调用模型接口正常。
可能原因
结合报错信息与场景,可能的原因包括:FastGPT发送的请求参数与模型服务要求不匹配;Docker环境下的网络配置限制导致FastGPT无法正常连通模型服务;模型服务的stream模式返回格式与FastGPT解析逻辑不兼容;FastGPT内部的请求处理逻辑存在异常。
排查步骤
- 对比FastGPT的模型请求体与终端测试的请求体,检查model名称、messages格式、stream参数是否一致,本次issue中的请求体为
{"model":"Qwen2.5-7B-Instruct-1M","messages":[{"role":"user","content":"hi"}],"stream":true},需确认模型服务支持该参数组合。 - 进入FastGPT容器内部,执行curl命令测试模型接口,确认网络连通性与接口响应正常。
- 临时关闭stream模式重新测试模型,排查stream响应解析相关的报错。
- 查看FastGPT容器的完整运行日志,确认是否存在其他关联的错误信息。
解决与验证
若为请求参数不匹配,调整FastGPT中模型配置的参数以匹配模型服务要求;若为网络问题,检查Docker网络配置、端口映射规则或主机防火墙限制,确保FastGPT容器可以正常访问模型服务端口;若为stream模式兼容问题,可临时关闭stream模式或更新FastGPT至适配版本。验证方式为重新添加对应模型并执行测试,确认接口返回200状态码且无报错信息。