本地服务起来了、API 却调不通:先 curl,curl 通就是客户端的事
本地推理服务明明起来了,OpenAI 客户端却报 401 或 404 —— 九成是路径、鉴权、端口三处里的一处对不上:客户端默认请求 /v1/chat/completions,服务实际可能是别的路径;服务要 API key 而客户端没带;或干脆连错了端口。最快的判据是 curl 直连 /v1/models:curl 通说明服务没问题,问题一定在客户端配置。
本地大模型部署排错APIvLLMSGLang这条适用于
- 本地服务已起来(进程/端口正常)
- 但客户端调 API 报 401 / 404
版本指纹
vLLM / SGLang / Ollama 的 OpenAI 兼容接口;base_url 是否带 /v1 因服务而异
具体做法
—— ① 决定性判据:先直连服务本身 ——
用 curl 直接请求服务的模型列表接口,例如访问 http://127.0.0.1:8000/v1/models
关键不在命令本身,而在「直连能不能通」:
通 → 服务 OK,问题一定在客户端配置
401 → 鉴权:key 缺失或不对
404 → 路径:多半漏了 /v1,或多了少了路径段
连接被拒 → 端口错,或服务根本没起
—— ② 客户端配置对齐(以 OpenAI SDK 为例)——
base_url 要指向服务的 /v1 前缀(多数 OpenAI 兼容服务都要求)
api_key 填与服务端一致的 key;不校验鉴权的服务随便填一个非空值即可
—— ③ 排查端口是否在听 ——
Windows: netstat -ano | findstr :8000
Linux: ss -lntp | grep 8000
—— ④ 服务端若要求鉴权,启动时就显式设置 ——
vllm serve 模型名 --host 0.0.0.0 --port 8000 --api-key 你的key
—— ⑤ 浏览器跨域(仅本地调试)——
给服务加「允许来源」参数;生产环境不要放开为通配
失效边界
适用边界:本机实测以 vLLM / SGLang / Ollama 的 OpenAI 兼容接口为主,三者路径与鉴权习惯略有差异(Ollama 默认无鉴权、vLLM 可用 --api-key 开启)。base_url 是否要带 /v1 因服务而异,务必以该服务的 /v1/models 能否 curl 通为准。提醒:跨域放开 --allow-origins 仅用于本地调试,生产环境不要开 * 通配。
适用边界:本机实测以 vLLM / SGLang / Ollama 的 OpenAI 兼容接口为主,三者路径与鉴权习惯略有差异(Ollama 默认无鉴权、vLLM 可用 --api-key 开启)。base_url 是否要带 /v1 因服务而异,务必以该服务的 /v1/models 能否 curl 通为准。提醒:跨域放开 --allow-origins 仅用于本地调试,生产环境不要开 * 通配。