OpenAI-Compatible API Explained
請求:{model, messages:[{role,content}...], stream, max_tokens, tools...};回應:{choices:[{message:{role,content}}], usage:{prompt_tokens,completion_tokens}}。就這麼簡單——這正是它成為標準的原因。
所有主流 SDK(openai-python、openai-node、LangChain、LlamaIndex、Vercel AI SDK)都支援覆寫 base_url,所以「換到中轉站」= 改兩行配置。
①請求格式相容:各家都做得到。②串流相容:SSE 的 chunk 拼接、finish_reason、[DONE] 結尾——很多便宜服務在這裡出錯。③生態相容:工具呼叫(tools/tool_calls)、JSON 模式、usage 統計、reasoning 欄位——做到這層的才配叫「全相容」。
OlithmRouter 在閘道層統一實作三個層級,並額外支援 Anthropic Messages 與 Gemini /v1beta 兩種原生協定——同一把金鑰,三種協定。
推理型模型引入了 reasoning/thinking 欄位與 reasoning_effort 參數,各家格式又不一致。OlithmRouter 正規化三種協定的 reasoning_effort 為 low/medium/high,控制台日誌顯示強度標記,方便你對帳與調參。
串流 chunk 是否逐段即時到達(不是攢最後一次吐);usage 是否真實(對照官方 token 計算);工具呼叫的多輪迴圈是否正常;錯誤格式是否仍是 OpenAI 形狀(SDK 才能解析);429 是否帶 Retry-After。