症狀
在自己電腦上用指令碼、AI 程式設計工具(Codex、Claude Code 等)裡的 Skill 出圖,出現這些情況:- 1K、2K 的圖基本都能拿到,4K 或多參考圖的大圖經常拿不到
- 程式沒有任何報錯,一直顯示「等待中」,直到你自己設的超時(600 秒、900 秒)才報
read timed out,或者被你手動終止 - 等待期間一個位元組都沒收到,連響應頭(HTTP 狀態碼)都沒有
- 到 呼叫日誌 裡看,對應請求在提交後 30~90 秒就已經結束,記為失敗,錯誤碼是
write_response_body_failed,沒有扣費 - 程式是繞開代理直連的:設過
NO_PROXY、trust_env=False,或在代理軟體裡給apiyi.com加了直連規則
簡短回答
圖其實已經生成好了,是在傳回你電腦的路上丟了。4K 圖的響應有幾十 MB。部分家庭寬頻、辦公網路直連海外節點時,傳這麼大的響應會在開頭幾十 KB 後被中斷:伺服器這一側收到了斷開,你的電腦卻什麼也沒收到,所以程式只能一直等。讓出圖請求改走代理(VPN),通常就能解決。這類失敗不扣費。
為什麼會這樣
一次非流式出圖請求,結果是在最後一次性返回的:
我們處理過的案例裡,服務端在 40
- 同一臺電腦上 1K、2K 的小圖大多能正常收到
- 同一個賬號走代理出口的請求,40~50 MB 的 4K 圖幾乎全部送達
curl、瀏覽器測連通性一切正常(小請求零點幾秒就返回),很難自己察覺。
這和 開著代理調用出圖,總在 90 秒左右斷開? 正好相反:那篇是代理掐斷了等圖期間的空閒連線,解決方法是設直連;本篇是直連線路傳不了大響應,解決方法是走代理。哪條路對你有效,以下文的對比測試為準。
怎麼確認是這個問題
1
對照呼叫日誌
在 呼叫日誌 裡找到對應時間段。程式還在等、日誌裡卻早已記了一條
write_response_body_failed 失敗,就說明服務端已經出完圖、開始往回發了,是回程斷的。2
看是不是越大越容易失敗
同樣的提示詞和參考圖,1K / 2K 能拿到、4K 拿不到,基本就是這個問題。
3
確認程式到底走沒走代理
很多 AI 程式設計工具在後臺起的 Python / Node 子程序不讀系統代理,即使 Clash 開著全域性模式,它也可能是直連的。在同一個終端或同一個工具裡跑:顯示的是你本地寬頻的 IP,說明這個環境裡的請求是直連的。
4
走代理和直連交替各跑幾張 4K
按
代理 → 直連 → 代理 → 直連 的順序交替跑,不要先連跑 5 次一種再連跑 5 次另一種,避免被某個時間段的網路波動誤導。走代理穩定成功、直連頻繁卡住,即可確認。解決方法
- 讓程式走代理(推薦)
- 代理軟體開 TUN 模式
- 暫時降低單次響應大小
去掉程式裡「繞開代理」的設定,讓出圖請求走代理:
- 刪掉
NO_PROXY裡的apiyi.com - Python
requests/httpx:去掉trust_env=False - Python
urllib:不要用ProxyHandler({})構造 opener - Node.js:原生
fetch預設不走代理,需要配合ProxyAgent等庫顯式指定
超時也要設得合理
這種情況下程式收不到任何斷開訊號,只能靠自己的超時發現問題。超時設成 900 秒,就要白等 15 分鐘才知道失敗了。 非流式出圖在出圖期間本來就沒有資料,讀取超時不能設得比出圖時間短。建議設成比正常出圖耗時略長:4K 約 300 秒、1K/2K 約 180 秒。超時後先去呼叫日誌確認這次請求是否扣費,再決定要不要重試,避免重複出圖。部署到伺服器後還會遇到嗎?
國內雲伺服器、海外伺服器到 API易 的線路品質通常遠好於家庭寬頻,這個問題主要出現在本地開發環境。如果伺服器上也出現「響應頭到了、內容傳一半就斷」,排查方法見 圖片 API 連線中斷排查。常見疑問
這些失敗的請求扣費了嗎?
這些失敗的請求扣費了嗎?
沒有。呼叫日誌裡記為
write_response_body_failed 的請求不扣費,具體以日誌裡每條記錄的扣費金額為準。直連測 api.apiyi.com 明明是通的,為什麼說是線路問題?
直連測 api.apiyi.com 明明是通的,為什麼說是線路問題?
連通性測試的請求和響應都只有幾百位元組,零點幾秒就完成了。這個問題只在傳幾十 MB 的大響應時才出現,小請求測不出來。
程式終止後,服務端還會繼續出圖嗎?
程式終止後,服務端還會繼續出圖嗎?
請求一旦提交,服務端會照常出圖。所以手動終止後馬上重試,可能和上一次請求同時在出圖。不過在本篇這種情況下,你終止程式時服務端往往早就出完了圖,回傳也已經失敗,不會扣費。
只是 4K 有問題,為什麼 2K 偶爾也會卡住?
只是 4K 有問題,為什麼 2K 偶爾也會卡住?
響應越大越容易被中斷,但並不是超過某個大小就一定失敗。2K 的響應也有幾 MB,線路差的時候同樣可能中招,只是機率低得多。
相關文件
開著代理調用出圖,總在 90 秒左右斷開?
反方向的問題:代理掐斷空閒連線,設直連解決
圖片 API 連線中斷排查
write_response_body_failed、SSL EOF 等斷連報錯的完整排查
日誌顯示已完成,客戶端卻收不到響應?
日誌用時與客戶端等待時間的差值在哪裡
如何檢視我的呼叫記錄?
按時間段核對每條請求的狀態與扣費