「OpenAI 相容」表示 API 使用與 OpenAI 的 /v1/chat/completions 相同的線路格式——因此任何 OpenAI SDK 或工具都能使用,只需變更 base_url。Ollama 為在你電腦上本機執行的模型提供 OpenAI 相容端點。Kunavo 則為託管的前沿模型——Claude、GPT,以及影像、影片和音訊模型——提供同樣的端點,並使用一個 bearer token。本指南說明這套模式,以及如何在兩者之間切換而不必重寫程式碼。
「OpenAI 相容」代表什麼
OpenAI Chat Completions 格式已成為事實標準:輸入一個 messages 陣列,輸出一個 choices[].message,使用 Server-Sent Events 進行串流,並使用 tools 進行函式呼叫。任何遵循此契約的端點都是「OpenAI 相容」,而官方的 openai SDK(Python、Node,以及所有社群移植版本)只要設定 base_url 就能指向它。
Ollama 模式(本機)
Ollama 在本機執行開放模型,並透過 http://localhost:11434/v1 提供服務:
from openai import OpenAI
# Ollama exposes an OpenAI-compatible endpoint on localhost
client = OpenAI(base_url="http://localhost:11434/v1", api_key="ollama")
resp = client.chat.completions.create(
model="llama3.1",
messages=[{"role": "user", "content": "Summarize this changelog."}],
)
print(resp.choices[0].message.content)相同程式碼,託管前沿模型(Kunavo)
將完全相同的 SDK 指向 Kunavo,並選擇一個前沿模型。只有 base_url、api_key 和 model 會變更——呼叫內容逐位元組相同:
import os
from openai import OpenAI
# Same SDK, same call shape — only base_url, api_key and model change
client = OpenAI(
base_url="https://api.kunavo.com/v1",
api_key=os.environ["KUNAVO_API_KEY"],
)
resp = client.chat.completions.create(
model="claude-sonnet-5", # or claude-haiku-4-5, gpt-5-5, gpt-5-6-terra...
messages=[{"role": "user", "content": "Summarize this changelog."}],
)
print(resp.choices[0].message.content)在 /app/keys 取得金鑰;快速入門提供 Node 與 curl 形式。
本機與託管——何時使用哪一種
| Ollama(本機) | Kunavo(託管) | |
|---|---|---|
| 模型品質 | 開放模型(Llama、Qwen、Mistral) | 前沿模型:Claude、GPT |
| 硬體 | 你的 GPU/RAM | 無——完全託管 |
| 成本 | 免費(你的電費) | 隨用隨付,低於牌價 |
| 隱私 | 完全離線 | 託管於美國,並轉送給模型供應商;適用供應商的資料保留政策;不提供 DPA 或 ZDR |
| 多模態 | 有限 | 使用一把金鑰涵蓋影像、影片、音訊 |
常見設定:離線開發時在 localhost 使用 Ollama,正式環境使用 Kunavo 的託管品質——只需一個環境變數即可切換。若要了解兩端實作的逐欄位契約——參數、串流增量、tool_calls、usage 物件,以及與 Ollama 的 v1 介面之間的相容性表——請參閱/v1/chat/completions 參考文件及其中的 Ollama OpenAI 相容性章節。
在執行階段探索模型
如同 Ollama 的 /api/tags,Kunavo 提供 OpenAI 形式的模型目錄。請在執行階段解析 slug,而不要寫死:
# Discover every enabled model (OpenAI-shaped, like Ollama's /api/tags)
curl https://api.kunavo.com/v1/models \
-H "Authorization: Bearer $KUNAVO_API_KEY"不只聊天
同一把金鑰可連接影像(/v1/images/generations)、影片(/v1/video/generations)和音訊端點——全部採用 OpenAI 形式。請參閱多模態 AI 指南和OpenRouter 比較,了解 Kunavo 與其他閘道的差異。
有一個超越通常「相容」定義的介面,值得了解:POST /v1/responses。Codex CLI 只接受透過 Responses API 使用自訂供應商,這就是為什麼大多數 OpenAI 相容閘道完全無法驅動它——Codex 每 token 的成本會透過可執行的設定區塊處理這件事。若要計算包含快取輸入的 GPT 工作負載價格,OpenAI API 價格計算器會採用你自己的 token 數量。
常見問題
什麼是 OpenAI 相容 API?
一種使用與 OpenAI 的 /v1/chat/completions 相同線路格式的 API——相同的請求主體、相同的回應結構、相同的串流方式。任何 OpenAI SDK 或工具都能使用,只需變更 base_url 與 api_key。Ollama 為本機模型提供這種介面;Kunavo 則為託管的前沿模型提供。
是否有像 Ollama 為本機模型提供的那種、適用於託管模型的 OpenAI 相容 API?
有。Ollama 的 OpenAI 相容端點會在你的電腦上執行本機模型;Kunavo 則在一個 base_url(https://api.kunavo.com/v1)與一個 bearer token 背後執行託管的 Claude、GPT,以及影像、影片和音訊模型。呼叫程式碼完全相同。
我可以在本機保留 Ollama,並在正式環境使用 Kunavo 嗎?
可以——這是常見模式。由於兩者都相容 OpenAI,只要替換 base_url 與模型即可切換環境:離線開發時使用 localhost 上的 Ollama,正式環境使用 Kunavo 的託管前沿品質。不需要變更 SDK。
我可以透過 OpenAI 相容端點呼叫哪些模型?
所有已啟用的模型——聊天模型包括 Claude、GPT 等,此外還有各自使用 OpenAI 形式端點的影像、影片和音訊模型。GET /v1/models 會回傳即時清單;請在執行階段解析 slug,不要寫死。瀏覽模型目錄。
速率限制呢?
每個供應商都會管理自己的上限,而 429 表示你超過其中一項——請參閱OpenAI API 速率限制,了解如何判斷觸發的是哪項限制,以及能解決問題的退避方式;Anthropic 的對應說明請參閱Claude API 429 rate_limit_error。