首页/AI/大模型部署与运维速查/Ollama API:原生接口与 OpenAI 兼容接口
部署形态与选型43 条

Ollama API:原生接口与 OpenAI 兼容接口

Ollama 同时提供原生 REST(/api/generate、/api/chat)与 OpenAI 兼容端点(/v1/chat/completions),后者可直接用 OpenAI SDK 连接,便于切换后端。

两套接口的关系

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/ps

OpenAI 兼容调用

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/completionsOpenAI 兼容对话端点
/v1/modelsOpenAI 兼容模型清单

典型使用场景

  • 本地原型开发:用兼容端点直接复用现有 OpenAI SDK 与业务代码
  • 临时替换后端:把 base_url 指到本机,验证提示词与流程后再切回云端
  • 查看运行时状态:用原生端点拿到当前加载的模型与显存占用
  • 脚本化调用:用 curl 或 SDK 做批量小任务,避免手工交互
  • 对照排查:同一个请求分别走两套端点,比较返回结构差异
兼容层对部分高级参数的支持程度与原生接口不同(例如概率输出与工具调用细节):迁移功能前先用目标 SDK 跑一遍最小用例。
默认只监听本机:要让局域网内其他机器调用需显式设置监听地址,并自行补上访问控制,否则等于开放一个无鉴权的推理接口。

易错点

  • 原生接口的流式默认开启而 SDK 预期非流式:混用两套接口时不显式设置流式开关会解析失败
  • 把兼容层当作完全等价实现:字段语义与错误结构有差异,客户端重试逻辑可能被误触发
  • 直接对外暴露 11434:无鉴权接口被扫描后会被反复调用
  • 用兼容端点排查引擎内部问题:原生端点提供的信息更贴近运行时状态,两者要配合使用
  • 忽略模型名映射:本地模型名带标签(如 7b),写错会报模型不存在

数据来源与参考

  • Ollama 官方文档:API Reference(docs.ollama.com)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌