Skip to content

Ollama 对 OpenAI API 的部分接口提供兼容性,帮助现有应用接入 Ollama。

使用方式

简单的 /v1/chat/completions 示例

简单的 /v1/responses 示例

带视觉能力的 /v1/chat/completions 示例

端点

/v1/chat/completions

支持的功能

  • [x] 聊天补全
  • [x] 流式传输
  • [x] JSON 模式
  • [x] 可复现输出
  • [x] 视觉能力
  • [x] 工具调用
  • [x] 推理/思维控制(适用于思维模型)
  • [ ] Logprobs

支持的请求字段

  • [x] model
  • [x] messages
    • [x] 文本 content
    • [x] 图像 content
      • [x] Base64 编码的图像
      • [ ] 图像 URL
    • [x] content 部分数组
  • [x] frequency_penalty
  • [x] presence_penalty
  • [x] response_format
  • [x] seed
  • [x] stop
  • [x] stream
  • [x] stream_options
    • [x] include_usage
  • [x] temperature
  • [x] top_p
  • [x] max_tokens
  • [x] tools
  • [x] reasoning_effort"high""medium""low""max""none"
  • [x] reasoning
    • [x] effort"high""medium""low""max""none"
  • [ ] tool_choice
  • [ ] logit_bias
  • [ ] user
  • [ ] n

/v1/completions

支持的功能

  • [x] 文本补全
  • [x] 流式传输
  • [x] JSON 模式
  • [x] 可复现输出
  • [ ] Logprobs

支持的请求字段

  • [x] model
  • [x] prompt
  • [x] frequency_penalty
  • [x] presence_penalty
  • [x] seed
  • [x] stop
  • [x] stream
  • [x] stream_options
    • [x] include_usage
  • [x] temperature
  • [x] top_p
  • [x] max_tokens
  • [x] suffix
  • [ ] best_of
  • [ ] echo
  • [ ] logit_bias
  • [ ] user
  • [ ] n

注意事项

  • prompt 当前仅接受字符串类型输入

/v1/models

注意事项

  • created 对应模型的最后修改时间
  • owned_by 对应 Ollama 用户名,默认为 "library"

/v1/models/{model}

注意事项

  • created 对应模型的最后修改时间
  • owned_by 对应 Ollama 用户名,默认为 "library"

/v1/embeddings

支持的请求字段

  • [x] model
  • [x] input
    • [x] 字符串
    • [x] 字符串数组
    • [ ] 令牌数组
    • [ ] 令牌数组数组
  • [x] encoding format
  • [x] dimensions
  • [ ] user

/v1/images/generations(实验性)

注意:此端点处于实验阶段,未来版本可能会进行修改或移除。

使用图像生成模型生成图像。

支持的请求字段

  • [x] model
  • [x] prompt
  • [x] size(例如 "1024x1024")
  • [x] response_format(仅支持 b64_json
  • [ ] n
  • [ ] quality
  • [ ] style
  • [ ] user

/v1/responses

注意:该功能在 Ollama v0.13.3 版本中添加。

Ollama 支持 OpenAI Responses API。仅支持无状态版本(即不支持 previous_response_idconversation 参数)。

支持的功能

  • [x] 流式传输
  • [x] 工具(函数调用)
  • [x] 推理摘要(适用于思维模型)
  • [ ] 有状态请求

支持的请求字段

  • [x] model
  • [x] input
  • [x] instructions
  • [x] tools
  • [x] stream
  • [x] temperature
  • [x] top_p
  • [x] max_output_tokens
  • [ ] previous_response_id(不支持有状态 v1/responses)
  • [ ] conversation(不支持有状态 v1/responses)
  • [ ] truncation

模型

使用模型前,请先通过 ollama pull 本地拉取模型:

shell
ollama pull llama3.2

默认模型名称

对于依赖 OpenAI 默认模型名称(如 gpt-3.5-turbo)的工具,可使用 ollama cp 命令将现有模型名称复制为临时名称:

shell
ollama cp llama3.2 gpt-3.5-turbo

之后,即可在 model 字段中指定这个新的模型名称:

shell
curl http://localhost:11434/v1/chat/completions \
    -H "Content-Type: application/json" \
    -d '{
        "model": "gpt-3.5-turbo",
        "messages": [
            {
                "role": "user",
                "content": "Hello!"
            }
        ]
    }'

设置上下文大小

OpenAI API 不支持设置模型的上下文大小。如果需要修改上下文大小,请创建一个格式如下的 Modelfile

FROM <some model>
PARAMETER num_ctx <context size>

使用 ollama create mymodel 命令创建带有更新后上下文大小的新模型。使用更新后的模型名称调用 API:

shell
curl http://localhost:11434/v1/chat/completions \
    -H "Content-Type: application/json" \
    -d '{
        "model": "mymodel",
        "messages": [
            {
                "role": "user",
                "content": "Hello!"
            }
        ]
    }'