
163、本地模型 API 封装:用 FastAPI 包装 Ollama/vLLM,提供 OpenAI 兼容接口从一次诡异的 502 说起上周五凌晨两点,我盯着终端里不断滚动的错误日志,咖啡杯底已经结了层褐色的膜。生产环境上部署的本地模型服务突然全部返回 502,排查了半小时才发现——Ollama 的默认端口 11434 被隔壁团队的 Jenkins 容器占用了。更离谱的是,我写的客户端代码里硬编码了http://localhost:11434/v1/chat/completions,导致所有请求都打到了 Jenkins 的 404 页面。这种破事我经历过太多次了。本地模型跑起来容易,但要让它像 OpenAI 那样稳定提供服务,必须自己写一层 API 封装。今天这篇笔记,我就把踩过的坑和最终沉淀下来的方案写清楚——用 FastAPI 包装 Ollama 和 vLLM,对外暴露 OpenAI 兼容接口。为什么非要自己封装一层?直接调 Ollama 的 HTTP API 不行吗?行,但你会遇到三个让我头疼的问题:端口冲突:Ollama 默认 11434,vLLM 默认 8000,你同时跑两个模型试试?更别说公司内网还有各种乱七八糟的服务。接口不统一:Ollama 的/api/generate