文件

文件

Ollama 的 OpenAI 相容 API

Ollama 為本機模型提供 OpenAI 相容 API。以下說明如何使用 OpenAI SDK 呼叫它,以及如何只變更 base_url 和 model,讓相同程式碼連到託管的 Claude 和 GPT。

Ollama 可在您自己的電腦上執行開放模型,並透過 OpenAI 相容 API(位於 http://localhost:11434/v1)提供服務。由於傳輸格式與 OpenAI 相同,官方 OpenAI SDK 不需修改即可用於 Ollama;只要變更基礎 URL,相同程式碼就能連到託管的前沿模型。

簡而言之 — Ollama 的 OpenAI API 位於 http://localhost:11434/v1。將 OpenAI 用戶端的 base_url 設為該位址,並使用任意佔位 api_key。若要改用託管的 Claude/GPT,請將 base_url 改為 https://api.kunavo.com/v1,並變更模型代稱——其他設定都不必變更。

Ollama 的 OpenAI 相容 API 是什麼

Ollama 是獨立的開放原始碼專案,可在本機執行 Llama、Qwen 和 Mistral 等模型。除了原生 API,它也提供 OpenAI 相容介面,因此為 OpenAI 打造的工具不必重寫即可使用。它實作了大多數應用程式會用到的端點:

端點用途
POST /v1/chat/completions聊天 — 大多數應用程式使用的端點
POST /v1/completions舊版文字補全
POST /v1/embeddings本機模型的嵌入
GET /v1/models列出已在本機下載的模型

它支援聊天、補全和嵌入(也支援多模態本機模型的視覺輸入),但不會生成圖片、影片或音訊。Kunavo 實作了相同的 /v1/chat/completions 契約 — 該參考文件說明所有參數、串流增量的格式和 usage 物件,並附上與 Ollama v1 介面的逐行相容性對照表。

使用 OpenAI SDK 呼叫 Ollama

將 base_url 指向 http://localhost:11434/v1。SDK 要求提供 api_key,但本機 Ollama 會忽略其值——可傳入任意字串。將 model 設為已下載的模型(例如 ollama pull llama3.2)。

from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:11434/v1",  # Ollama's OpenAI-compatible API
    api_key="ollama",  # required by the SDK, ignored by local Ollama
)

resp = client.chat.completions.create(
    model="llama3.2",
    messages=[{"role": "user", "content": "Explain quicksort in one paragraph."}],
)
print(resp.choices[0].message.content)

也可以使用 curl:

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

使用相同程式碼呼叫託管的前沿模型

Ollama 非常適合離線開發和重視隱私的工作,但在高難度推理、程式設計和長上下文方面,本機模型仍不及前沿模型。由於 Kunavo 也相容於 OpenAI,只需變更兩行設定——base_url 和模型代稱——即可將呼叫改為使用託管模型:

from openai import OpenAI

client = OpenAI(
    base_url="https://api.kunavo.com/v1",  # only this line changes
    api_key="sk-kn-...",               # a real key now
)

resp = client.chat.completions.create(
    model="claude-sonnet-5",  # a hosted frontier model
    messages=[{"role": "user", "content": "Explain quicksort in one paragraph."}],
)
print(resp.choices[0].message.content)
Ollama(本機)Kunavo(託管)
基底 URLlocalhost:11434/v1api.kunavo.com/v1
執行位置您的電腦託管 API
模型本機開放模型Claude、GPT、Veo、Suno
支援模態文字 + 嵌入文字、圖片、影片、音訊
成本您的硬體/電力按 token 計費,低於牌價
最適合離線開發、隱私前沿模型的正式環境品質
一把 Kunavo 金鑰即可存取所有託管模型,費用透過 Stripe 一次計付——請參閱快速入門,進行首次呼叫。

透過環境變數切換

常見做法是開發時使用 Ollama,正式環境則使用託管模型,並透過環境變數選擇。用戶端和請求程式碼完全相同——只有 base_url 和模型不同:

import os
from openai import OpenAI

# One client, switched by environment. Local for dev, hosted for prod.
if os.getenv("APP_ENV") == "production":
    client = OpenAI(base_url="https://api.kunavo.com/v1",
                    api_key=os.environ["KUNAVO_API_KEY"])
    MODEL = "claude-haiku-4-5"
else:
    client = OpenAI(base_url="http://localhost:11434/v1", api_key="ollama")
    MODEL = "llama3.2"

resp = client.chat.completions.create(
    model=MODEL,
    messages=[{"role": "user", "content": "ping"}],
)
print(resp.choices[0].message.content)

常見問題

Ollama 有 OpenAI 相容 API 嗎?

有。Ollama 在 http://localhost:11434/v1 提供 OpenAI 相容的 REST API,支援 /chat/completions、/completions、/embeddings 和 /models。將官方 OpenAI SDK 指向該 base_url,將 api_key 設為任意字串(Ollama 在本機會忽略它),並將 model 設為已下載的模型,例如 llama3.2。請求和回應格式與 OpenAI 相同。

Ollama 的 OpenAI API 使用什麼基礎 URL?

http://localhost:11434/v1 by default. Set the OpenAI client base_url to that value. If Ollama runs on another host or port, substitute it — the /v1 suffix stays.

如何從 Ollama 切換到託管模型?

由於兩者都相容於 OpenAI,只需變更 base_url 和 model。將 http://localhost:11434/v1 換成 https://api.kunavo.com/v1,使用有效的 sk-kn- 金鑰,並將 model 設為 claude-sonnet-5 或 claude-haiku-4-5 這類託管模型代稱。其他程式碼都不必修改。

Ollama 的 OpenAI API 支援圖片或影片嗎?

Ollama 的 OpenAI 相容介面支援聊天、補全和嵌入,也支援多模態本機模型的視覺輸入。它不會生成圖片、影片或音訊。若要透過相同的 OpenAI 風格 API 使用託管圖片、影片和音訊生成服務,請使用 Kunavo 的 /v1/images、/v1/video 和 /v1/audio 端點。

接下來可以查看