curl 正常、Spring AI 却 400:Spring AI 对接 vLLM DeepSeek 模型完整排查指南
curl 正常、Spring AI 却 400Spring AI 对接 vLLM DeepSeek 模型完整排查指南【免费下载链接】spring-aiAn Application Framework for AI Engineering项目地址: https://gitcode.com/GitHub_Trending/spr/spring-ai你正用 Spring AI 的 OpenAiChatModel 对接 vLLM 部署的 DeepSeek 模型配置确认无误调用却稳定返回 400服务端坚称请求体缺失。本文完整记录这次排查从现象对照、根因定位到用 Jetty 客户端动手修复的验证清单帮你快速解决 Spring AI 对接 vLLM 报 400 的问题。现象对照curl 正常 vs OpenAiChatModel 400 请求体缺失这类 400 错误最让人抓狂的点是它的双重标准。你的应用里base-url指向 vLLM 服务的/v1端点API Key、模型名均已反复核对同一份参数抄到终端里用curl打过去响应一切正常可一旦 Spring AI 的 OpenAiChatModel 发起调用就稳定失败日志长这样400 - {object:error,message:[{type: missing, loc: (body,), msg: Field required, input: None}],type:BadRequestError,param:null,code:400}注意input: None这个细节——服务端表示它没收到任何请求体。而 curl 那边明明把 body 发出去了。此刻你该问自己的第一个问题是请求体真的发出去了吗还是发出去了只是服务端没读出来根因剖析分块传输编码才是 vLLM 400 的元凶chunked transfer encoding 是什么chunked transfer encoding 是一种把 HTTP 请求体切成多块、逐块发出去的方式不需要在头部预先写死总长度。生活化的类比搬家时不把所有行李一次搬完而是一趟一趟送最后再补一个到此结束的空块收尾。默认 HTTP 客户端为什么会触发它Spring 默认的 HTTP 客户端在发送 body 时特定条件下会启用这种分块模式——比如内容长度无法预先确定的场景。请求本身完全合法只是 body 的送法多了一层分块包装。vLLM 为什么解析失败问题出在 vLLM 一侧它对分块编码的请求体处理有缺陷读不出实际内容于是判定 body 为缺失直接拒绝并返回 400。至此整条链路闭环curl 发完整 body → 正常Spring AI 默认客户端发分块 body → vLLM 读空 → 400。动手修复快速替换 HTTP 客户端为 Jetty 的完整步骤过渡方案一句话概括把 HTTP 客户端换成 Jetty。Jetty 客户端与 vLLM 之间不触发这个解析问题是目前最快的通路。引入 Jetty 依赖在 pom.xml 中加入两个依赖dependency groupIdorg.eclipse.jetty/groupId artifactIdjetty-client/artifactId /dependency dependency groupIdorg.eclipse.jetty/groupId artifactIdjetty-reactive-httpclient/artifactId /dependency前者服务阻塞式调用后者服务响应式场景缺一不可。用 Jetty 客户端重建 OpenAiApi通过 builder 显式指定 Jetty 客户端重建 OpenAiApiOpenAiApi openAiApi OpenAiApi.builder() .baseUrl(chatConfig.getBaseUrl()) .apiKey(chatConfig.getApiKey()) .restClientBuilder(RestClient.builder() .requestFactory(new JettyClientHttpRequestFactory())) .webClientBuilder(WebClient.builder() .clientConnector(new JettyClientHttpConnector())) .build();再把该 OpenAiApi 交给 OpenAiChatModel。注意restClientBuilder与webClientBuilder都要配置前者管同步调用后者管流式stream响应漏掉任何一个都可能让问题换个姿势复现。修复后验证清单重发修复前失败的同一请求确认返回 200 且模型响应正常单独验证streaming 场景确认 WebClient 侧的 Jetty 客户端已生效查看 vLLM 端日志确认请求体被正确解析、无字段缺失告警回归同服务的其他接口如 embedding防止改动引入新问题补丁之外vLLM 400 问题的三条长期建议Jetty 方案属于过渡手段根本矛盾仍在两端的协议兼容性上vLLM 修复 chunked transfer encoding 兼容——这是 HTTP 协议的基本要求服务端理应正确处理Spring AI 增加对 vLLM 这类服务的针对性适配——把 HTTP 客户端做成更易配置项能显著降低排查成本开发者养成关注 HTTP 客户端配置项的习惯——对接自托管推理服务前先弄清底层到底是谁在发请求写在最后这次 400 的根源不在配置而在传输层的协议兼容性同样的 body不同的送法两种结果。如果你正卡在同一类报错上先拿 curl 做对照实验再按上文步骤把客户端切到 Jetty——大概率十分钟就能跑通。【免费下载链接】spring-aiAn Application Framework for AI Engineering项目地址: https://gitcode.com/GitHub_Trending/spr/spring-ai创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

SketchyBar快速指南:5分钟零基础上手macOS透明状态栏美化

SketchyBar快速指南:5分钟零基础上手macOS透明状态栏美化

SketchyBar快速指南:5分钟零基础上手macOS透明状态栏美化 【免费下载链接】SketchyBar A highly customizable macOS status bar replacement 项目地址: https://gitcode.com/gh_mirrors/sk/SketchyBar 刚调好一张渐变壁纸,顶部那条灰白色的状态栏…

2026/8/24 2:32:52 阅读更多 →
多智能体系统信任机制:形成、破裂与修复的工程实践

多智能体系统信任机制:形成、破裂与修复的工程实践

1. 从一次“信任危机”看多智能体系统的核心挑战 最近在调试一个由多个AI智能体协作处理复杂任务的系统时,我遇到了一个典型的“信任危机”。系统中有负责数据提取的Agent A、负责逻辑验证的Agent B和负责最终决策的Agent C。在一次常规任务中,Agent A因…

2026/8/24 2:32:52 阅读更多 →
智能体自我进化新范式:基于多轮反馈动力学的技能学习系统

智能体自我进化新范式:基于多轮反馈动力学的技能学习系统

1. 项目概述:重新审视自我进化智能体的技能构建范式最近在折腾多轮反馈驱动的智能体系统时,我反复琢磨一个核心问题:我们是不是把“自我进化”这件事想得太简单了?市面上很多所谓的“自我进化”或“技能学习”智能体,其…

2026/8/24 2:31:52 阅读更多 →

最新新闻

coreHD算法

coreHD算法

一、基本信息完整记录内容标题 英文:Fast and simple decycling and dismantling of networks 中文:快速简洁的网络去环与网络拆解算法作者:Lenka Zdeborov、Pan Zhang(张攀)、Hai-Jun Zhou(周海军&#xf…

2026/8/25 11:44:33 阅读更多 →
CANdb++不是数据库:DBC文件本质与工程实践指南

CANdb++不是数据库:DBC文件本质与工程实践指南

1. CANdb不是“数据库软件”,而是CAN协议工程的数字图纸编辑器很多人第一次看到“CANdb数据库操作”这个说法,会下意识把它当成MySQL或SQLite那样的通用数据库管理系统——这恰恰是踩进的第一个认知陷阱。我刚接触车载电子开发时也这么想,结果…

2026/8/25 11:44:33 阅读更多 →
Python标准库:开箱即用的生产级工具箱与工程实践指南

Python标准库:开箱即用的生产级工具箱与工程实践指南

1. 什么是Python标准库:不是“第三方”,而是你装完Python就自带的“出厂配置” 很多人第一次听说“Python标准库”,下意识会把它和pip install安装的requests、numpy、pandas混为一谈——这其实是个根本性误解。Python标准库(Pyt…

2026/8/25 11:44:33 阅读更多 →
TVA-World生成式具身智能:概念、原理、应用(1)

TVA-World生成式具身智能:概念、原理、应用(1)

前沿技术探索:TVA智能体(简称TVA)TVA智能体(亦称“AI智能体视觉”或“TVA视觉智能体”)是依托Transformer架构与“因式智能体”理论构建的系统级视觉技术框架。它融合深度强化学习(DRL)、卷积神…

2026/8/25 11:44:33 阅读更多 →
从像素比对到AI赋能:构建高效图片测试工具链的工程实践

从像素比对到AI赋能:构建高效图片测试工具链的工程实践

1. 从“肉眼比对”到“像素级洞察”:为什么测试工程师需要图片测试工具如果你是一名测试工程师,尤其是负责UI、视觉回归或者涉及图像内容验证的测试,下面这个场景你一定不陌生:产品经理拿着设计稿,指着屏幕说“这个按钮…

2026/8/25 11:44:33 阅读更多 →
终端网络审计 + 行为分析:构建企业内网可视与风险溯源体系

终端网络审计 + 行为分析:构建企业内网可视与风险溯源体系

一、传统内网管控存在的核心痛点 1、身份难以精准关联:网关设备仅记录 IP,无法对应到具体员工、计算机; 2、行为数据相互割裂:聊天外传、网盘上传、网页访问等日志分散,无法串联完整泄密链路; 3、海量日志人…

2026/8/25 11:43:32 阅读更多 →

日新闻

洛谷 P7912:[CSP-J 2021 T4] 小熊的果篮 ← 双向链表

洛谷 P7912:[CSP-J 2021 T4] 小熊的果篮 ← 双向链表

【题目来源】 https://www.luogu.com.cn/problem/P7912 【题目描述】 小熊的水果店里摆放着一排 n 个水果。每个水果只可能是苹果或桔子,从左到右依次用正整数 1,2,…,n 编号。连续排在一起的同一种水果称为一个“块”。小熊要把这一排水果挑到若干个果篮里&#x…

2026/8/25 0:00:34 阅读更多 →
Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG

Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG

Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG 【免费下载链接】transformers.js State-of-the-art Machine Learning for the web. Run 🤗 Transformers directly in your browser, with no need for a server! 项目地址: https:/…

2026/8/25 0:00:34 阅读更多 →
数学建模竞赛论文写作指南:从模型构建到学术表达的核心技能

数学建模竞赛论文写作指南:从模型构建到学术表达的核心技能

1. 项目概述:从“会做”到“会写”的竞赛核心跃迁“全国大学生数学建模竞赛”,这个名字对理工科学生来说,分量极重。每年,无数团队在三天三夜的时间里,为一个开放性问题绞尽脑汁,从建立模型、求解算法到编程…

2026/8/25 0:00:34 阅读更多 →

周新闻

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/25 3:38:12 阅读更多 →
SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/25 3:38:18 阅读更多 →
Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/25 3:38:23 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/24 20:22:44 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/25 10:31:12 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/24 11:20:22 阅读更多 →