各位大佬好: 我在Mac机器上使用IDEA运行Spring AI 1.0.0 release版本的项目调用GUPtack中qwen3-embedding-8b模型能正常向量化, 但打包镜像部署到Ubuntu 22.04.4 LTS服务器上,调用向量化,则报HTTP 400 - Invalid HTTP request received.异常。

在部署镜像服务的Linux服务器上直接使用curl访问qwen3-embedding-8b能正常访问,可以排除网络问题。

测试方法如下: @Slf4j @RestController @RequestMapping("/milvusRag") public class MilvusEmbeddingController {

@Resource
private EmbeddingModel embeddingModel;

@GetMapping("/embedding")
public Map embed(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {
    EmbeddingResponse embeddingResponse = this.embeddingModel.embedForResponse(List.of(message));
    log.info("Embedding response embedding size: {}", embeddingResponse.getResults().get(0).getOutput().length);
    log.info("Embedding response: {}", JSON.toJSONString(embeddingResponse));
    return Map.of("embedding", embeddingResponse);
}

}

nacos配置如下: spring: ai: openai: api-key: gpustack_xxx base-url: http://127.0.0.x/ embedding: options: model: qwen3-embedding-8b chat: options: model: deepseek-r1-distill-qwen-32b

请教各位大佬,这种情况该如何排查和解决?

Comment From: oopeak

我也遇到了HTTP 400 - Invalid HTTP request received报错,Embedding模型是平台本地部署的,目前发现是一个Transfer-Encoding: chunked的请求头导致的。换成在线模型或者直接api工具调用就没有问题,使用api工具调用的时候,如果加上这个Transfer-Encoding: chunked请求头,会返回同样的错误,换成在线模型不会。因为模型是平台那边部署的,所以现在还不确定具体部署服务器那边是出了什么问题。 我是使用httpclient5客户端,org.apache.hc: debug打开了日志

Image