两套接口的关系
Ollama 同时提供原生 REST 接口与 OpenAI 兼容接口:原生接口围绕 /api/ 路径,字段贴近它的内部模型;兼容接口提供 /v1/ 路径,可以直接用 OpenAI 客户端库连接,把 base_url 指向本机即可。兼容层让「先本地验证、后切云端」或反之变得简单,但它不是完全等价实现,个别参数与错误结构存在差异。
原生 /api/chat
原生 /api/chat
# 原生接口:stream 默认开启,脚本里要显式关掉
curl http://127.0.0.1:11434/api/chat -H 'Content-Type: application/json' -d '{
"model": "qwen2.5:7b",
"messages": [{"role": "user", "content": "你好"}],
"stream": false
}'
# 列出本地模型与运行中模型
curl http://127.0.0.1:11434/api/tags
curl http://127.0.0.1:11434/api/psOpenAI 兼容调用
OpenAI 兼容调用
# 兼容端点:可直接用 OpenAI SDK,base_url 指向本机 11434
curl http://127.0.0.1:11434/v1/chat/completions -H 'Content-Type: application/json' -d '{
"model": "qwen2.5:7b",
"messages": [{"role": "user", "content": "你好"}]
}'
# 模型清单走兼容路径
curl http://127.0.0.1:11434/v1/models常用端点
| 端点 | 用途 |
|---|---|
| /api/generate | 单轮文本补全,原生风格 |
| /api/chat | 多轮对话,messages 结构 |
| /api/tags | 本地已下载模型清单 |
| /api/ps | 运行中模型与显存占用 |
| /api/show | 模型参数、模板与量化信息 |
| /api/embed | 向量化接口(新旧版本路径有差异,以文档为准) |
| /v1/chat/completions | OpenAI 兼容对话端点 |
| /v1/models | OpenAI 兼容模型清单 |
典型使用场景
- 本地原型开发:用兼容端点直接复用现有 OpenAI SDK 与业务代码
- 临时替换后端:把 base_url 指到本机,验证提示词与流程后再切回云端
- 查看运行时状态:用原生端点拿到当前加载的模型与显存占用
- 脚本化调用:用 curl 或 SDK 做批量小任务,避免手工交互
- 对照排查:同一个请求分别走两套端点,比较返回结构差异
兼容层对部分高级参数的支持程度与原生接口不同(例如概率输出与工具调用细节):迁移功能前先用目标 SDK 跑一遍最小用例。
默认只监听本机:要让局域网内其他机器调用需显式设置监听地址,并自行补上访问控制,否则等于开放一个无鉴权的推理接口。