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 編碼圖片
      • [ ] 圖片網址
    • [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] 字串陣列
    • [ ] token 陣列
    • [ ] token 陣列陣列
  • [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!"
            }
        ]
    }'