cheapaimodel搜尋
所有文章

OpenAI 相容 API:開發者遷移檢查清單

作者:Nicho

OpenAI 相容的 API 可以讓你保留現有的用戶端函式庫,同時更換背後的服務。這對於評估模型、控管成本或整併供應商很有用。但這並不代表每個端點、參數或應用程式功能都會有一致的行為。

安全的遷移要從你的應用程式實際發出的請求開始。把相容性視為針對特定模型與路由的檢查清單,而不是貼在整個平台上的標籤。

本指南以 cheapaimodel 的設定作為具體範例。範例依循 2026 年 10 月 26 日檢視的公開文件;它們不是經過驗證的 API 測試結果。

1. 區分四種相容性

層級 要回答的問題 要蒐集的證據
用戶端 SDK 能否將請求傳送到這個服務? 有文件記載的自訂 Base URL 與驗證方式
通訊協定 伺服器是否看得懂請求的格式? 端點與參數文件
模型 所選模型是否實作該功能? 模型專屬的能力清單與針對性的測試
應用程式 結果是否符合你的工作流程? 回歸案例、已驗證的輸出與營運指標

一次成功的文字補全,只回答了這份檢查清單的一小部分。它無法證明圖片輸入、工具呼叫、結構化輸出或對話狀態能夠運作。

在選擇替代方案之前,先寫下你的應用程式所需的能力。把必要功能與便利功能分開。否則,一個便宜、只測文字的煙霧測試,可能掩蓋掉代價高昂的串接落差。

2. 一起設定 Key、Base URL 與模型

cheapaimodel 將 https://api.cheapaimodel.ai/v1 記載為其 OpenAI SDK 的 Base URL。請提供閘道自己的 API Key,而不是其他無關供應商的 Key。避免在 Base URL 中放入 /chat/completions,因為 SDK 會自行加上資源路徑。網站網域不是 API 主機。請參閱 Base URL 指南。

最小設定看起來像這樣:

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["CHEAPAIMODEL_API_KEY"],
    base_url="https://api.cheapaimodel.ai/v1",
)

result = client.chat.completions.create(
    model="deepseek-v4-1-flash",
    messages=[{"role": "user", "content": "Reply with one short greeting."}],
)
print(result.choices[0].message.content)

模型識別碼請依循閘道 SDK 指南;每個模型頁面都會列出其識別碼與價格,例如 DeepSeek V4.1 Flash。不要假設其他供應商對同一個模型系列會使用相同的識別碼。請把這三個設定值一起放在你的部署設定中,這樣部分變更就不會不小心把新的 Key 送到舊的端點。

請讓 Key 遠離前端打包檔、已提交的檔案與除錯日誌。為遷移環境使用獨立的 Key,這樣你就能單獨撤銷它。

3. 分辨 Chat Completions 與 Responses

檢查你的應用程式所呼叫的 SDK 方法。client.chat.completions.create(...) 與 client.responses.create(...) 是不同的介面。應用程式中標示為「OpenAI 相容」的設定,可能使用其中任一種。

cheapaimodel 同時列出這兩種路由,但其文件表示支援的端點取決於模型。請驗證路由與模型的組合,而不是假設其中一個可用就代表另一個也可用。請參閱 API 參考與 FAQ。

針對每個路由,請記錄:

  • 應用程式送出的請求欄位。
  • 應用程式讀取的回應欄位。
  • 它如何傳遞對話歷史或狀態。
  • 它需要哪些工具或格式選項。
  • 它的串流解析器如何辨識完成。

不要獨立變更端點與回應解析器。如果生成成功,但應用程式讀取了錯誤的欄位並顯示空白答案,那麼遷移就不算完成。

4. 稽核參數,而不是全部轉送

從具代表性的請求建立一份小型清單,並移除憑證與個人內容。納入框架新增的選填欄位,而不只是你自己程式碼中可見的欄位。

分別測試 token 限制、推理控制、取樣選項、工具與輸出格式。被接受的參數不一定就是有效的參數。DeepSeek 目前的 Chat Completions 參考文件記載了行為取決於思考模式的設定,同時也列出已不再生效的棄用欄位。

結構化輸出值得單獨測試。OpenAI 區分 JSON 模式與受結構描述約束的 Structured Outputs。OpenAI 形式的請求不會把這些保證轉移到每個相容的伺服器上。請確認所選供應商文件記載的格式支援,然後在你的應用程式中驗證結果。請參閱 OpenAI 的結構化輸出指南。

5. 測試失敗路徑與串流行為

使用精簡的迴歸測試套件,而不是單一令人驚豔的提示:

案例 必要觀察結果
短文字請求 可用的內容送達應用程式
多輪對話 相關的較早上下文獲得保留
串流回應 差異片段正確組裝,且中斷情況可見
工具工作流程(如有需要) 引數在執行前通過驗證
結構化回應(如有需要) 無效或不完整的輸出遭到拒絕
無效的模型或 Key 可讀的錯誤送達操作人員
緩慢或中斷的請求 逾時與重試行為有界限

在非生產環境中執行這些測試,並設定明確的支出上限。在可取得時記錄請求 ID、HTTP 狀態、延遲、完成狀態與驗證結果。絕不記錄憑證。除非你的日誌政策明確允許,否則請遮蔽客戶內容。

6. 讓其他協定與服務保持獨立

Anthropic Messages 相容性是另一份獨立的串接契約。它無法從 OpenAI 相容性推斷而來。cheapaimodel 為 Anthropic SDK 記載了不同的 Base URL 慣例,這些 SDK 會附加自己的 /v1/messages 路徑。請遵循文件記載的設定,而不是盲目重用某個 URL。

同時也要獨立稽核 embeddings、儲存、批次處理,以及任何託管工具。全域的 Base URL 覆寫可能會將超出預期的用戶端重新導向。當你的應用程式使用多項服務時,請優先採用明確的個別用戶端設定。

7. 以可回復的決策進行推行

先從內部流量或範圍狹窄的工作負載開始。比較任務成功率與每個可接受結果的成本,而不只是 token 價格。我們的 LLM API 定價比較 提供了定價方面的起點;你的回歸測試套件則提供品質證據。

保留先前的設定,定義回復門檻,並在重複執行受到控管之前,避免對有副作用的流程自動切換供應商。

當必要功能通過、失敗仍可理解,且應用程式能安全回到先前的設定時,遷移就準備就緒了。重複使用 SDK 是這個過程的開始,而不是它的驗收標準。

所有文章