AI 開發工具
OpenAI Python SDK 3.6.0 改用 HTTPX2,企業 TLS、測試攔截與自訂傳輸層需遷移
OpenAI Python SDK 已將同步與非同步預設客戶端從 HTTPX 換成 HTTPX2,並停止把舊版 `httpx` 與 `certifi` 當作傳遞相依套件。一般 API 呼叫大致不變,但企業代理、客製 transport、RESPX 測試及憑證信任設定可能在升級後失效。

OpenAI 於 8 月 28 日發布 Python SDK 3.6.0,最重要的底層變更不是新增模型介面,而是把同步與非同步 HTTP 客戶端全面遷移至 Pydantic 接手維護的 HTTPX2。直接建立 `OpenAI()` 或 `AsyncOpenAI()` 的應用仍可沿用既有串流、重試、數值 timeout 與解析後的回應模型;真正需要檢查的是曾接觸 SDK 傳輸層的程式。
新版不再隨 `openai` 安裝舊 `httpx` 或 `certifi`。HTTPX2 預設透過 `truststore` 使用作業系統信任庫,因此缺少 CA 套件的精簡容器、依賴修改版 `certifi` 的部署,以及使用 TLS inspection 的企業代理,可能在升級後出現憑證驗證錯誤。工程團隊應先確認映像內的系統 CA,或以 `SSL_CERT_FILE`、`SSL_CERT_DIR` 或明確的 `ssl.SSLContext` 指定信任來源。
自訂客戶端也須把 `httpx.Client`、`Timeout`、`URL`、transport、認證處理器與事件 hook 換成 HTTPX2 對應物件。原始回應、串流包裝器及底層例外現在同樣屬於 `httpx2` 類型;只攔截舊 HTTPX 的 RESPX 或 tracing 外掛可能無法看見請求。官方保留注入舊 HTTPX client 的暫時逃生路徑,但公開型別已以 HTTPX2 為準,使用者需要 `cast` 或忽略靜態型別錯誤,而且相容路徑日後可能移除。
這次遷移顯示模型 SDK 的網路堆疊本身已是生產風險邊界。升級前應針對代理、mTLS、串流中斷、連線池、mock transport 與最小化容器做整合測試,而不能只以單次 Responses API 成功回應作為驗證。