1. http://ip:11434/v1/chat/completions

这个接口是 OpenAI 兼容格式的 API,通常用于模拟 OpenAI 的 /v1/chat/completions 接口。它的设计目的是为了让开发者能够以 OpenAI 的 API 格式与 Ollama 的模型进行交互。

特点:
  • 兼容 OpenAI 格式:请求体和响应体的结构与 OpenAI 的 /v1/chat/completions 完全一致。

  • 支持多轮对话:可以通过 messages 字段传递多轮对话历史。

  • 适用于 OpenAI 客户端库:可以直接使用 OpenAI 的官方客户端库(如 openai Python 库)调用该接口。

请求示例:

bash


curl http://localhost:11434/v1/chat/completions -H "Content-Type: application/json" -d '{
  "model": "deepseek",
  "messages": [
    {"role": "user", "content": "Hello, how are you?"}
  ]
}'
响应示例:
{
  "id": "chatcmpl-12345",
  "object": "chat.completion",
  "created": 1698765432,
  "model": "deepseek",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Hello! I'm just a computer program, so I don't have feelings, but I'm here to help you. How can I assist you today?"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 10,
    "completion_tokens": 25,
    "total_tokens": 35
  }
}

2. http://ip:11434/api/chat

这个接口是 Ollama 原生的聊天接口,专门为 Ollama 的服务设计。它的请求和响应格式与 OpenAI 的接口不同,更贴近 Ollama 的本地模型调用方式。

特点:
  • Ollama 原生格式:请求体和响应体的结构是 Ollama 自定义的,与 OpenAI 的格式不兼容。

  • 支持流式响应:默认情况下,接口会以流式(streaming)方式返回结果,适合实时交互场景。

  • 更轻量级:相比 OpenAI 的格式,Ollama 的原生接口更简洁,适合直接与 Ollama 服务交互。

请求示例:
curl http://localhost:11434/api/chat -H "Content-Type: application/json" -d '{ "model": "deepseek", "messages": [ {"role": "user", "content": "Hello, how are you?"} ] }'
响应示例:

{
  "model": "deepseek",
  "created_at": "2023-10-01T12:00:00Z",
  "message": {
    "role": "assistant",
    "content": "Hello! I'm just a computer program, so I don't have feelings, but I'm here to help you. How can I assist you today?"
  },
  "done": true
}

3. 主要区别

特性 /v1/chat/completions (OpenAI 兼容) /api/chat (Ollama 原生)
接口格式 兼容 OpenAI 的 API 格式 Ollama 自定义格式
多轮对话支持 支持(通过 messages 字段) 支持(通过 messages 字段)
流式响应 可选(通过 stream 参数) 默认流式响应
适用场景 需要与 OpenAI 客户端库兼容的场景 直接与 Ollama 服务交互的场景
响应字段 包含 idobjectchoicesusage 等 更简洁,包含 modelmessagedone 等

4. 如何选择接口?

  • 如果你需要与 OpenAI 的客户端库 兼容,或者希望代码能够无缝切换到 OpenAI 的服务,请使用 /v1/chat/completions

  • 如果你直接与 Ollama 服务 交互,并且不需要 OpenAI 的格式,可以使用 /api/chat,它的设计更简洁且更适合本地部署的场景。


5. 注意事项

  • 流式响应:Ollama 的原生接口 (/api/chat) 默认是流式响应,而 OpenAI 兼容接口 (/v1/chat/completions) 需要显式设置 stream: true 来启用流式响应。

  • 模型名称:在请求中,确保 model 字段的值是 Ollama 中已加载的模型名称(如 deepseek)。

  • 性能差异:由于 OpenAI 兼容接口需要额外处理格式转换,可能会有轻微的性能开销。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐