LLM Extractor 節點針對單一輸入向聊天節點發出 10 多次呼叫

描述問題/錯誤/提問

我正在試著解決為什麼 Information Extractor 節點在單次執行單個輸入時會對 LLM 進行 10 次以上的呼叫 - 問題是它使用了 10 倍所需的代幣數量。
我正在使用 Information Extractor 節點搭配 Google Gemini 2.5 Flash。我使用了相當大的提示詞,並傳入大量文本作為內容進行分析(提示詞和內容共 25K+ 代幣)。Information Extractor 節點配置了 JSON 架構。
大多數情況下(99% 以上)這都能完美運作。今天,我在 UI 中收到了 524 錯誤訊息快顯,而 Extractor 節點在呼叫 Gemini 子節點 10 次以上,將總代幣數從 35K 增加到超過 500K。
我已停用重試,並設定繼續執行錯誤,輸出至錯誤介面。為什麼 Extractor 節點多次向 LLM 傳送我的提示詞和內容?我如何防止這種不期望的行為?

錯誤訊息是什麼(如果有的話)?重試問題

請求失敗,狀態碼為 524

請分享您的工作流程

(在畫布上選擇節點,使用鍵盤快捷鍵 CMD+C/CTRL+C 和 CMD+V/CTRL+V 來複製和貼上工作流程。)

分享最後一個節點返回的輸出

您的 n8n 設定資訊

  • n8n 版本:2.25.7
  • 資料庫(預設值:SQLite):N/A
  • n8n EXECUTIONS_PROCESS 設定(預設值:own、main):
  • 執行 n8n 的方式(Docker、npm、n8n cloud、桌面應用程式):n8n Cloud
  • 作業系統:

@am4c130d 那個 524 是 gateway timeout,Gemini 今天只是沒有及時回應,那 10+ 個呼叫是在你關閉的節點級重試下方引發的重試,它們是在 model 層級。你能檢查一下你的 Gemini Chat Model 子節點上的選項嗎,那裡的最大重試次數設定是多少?

感謝您的快速回覆。

在資訊提取器上 - 重試已停用。

在 gemini 聊天節點上,我只有這些選項:最大令牌數、採樣溫度、Top K、Top P、安全設置。在設置選項卡下只有一個備註選項。

我看不到如何管理重試。

@am4c130d 是的,這就是問題所在。n8n 沒有公開模型的 maxRetries,所以你無法從節點端限制它們,那些是 langchain 的內部重試機制在逾時時觸發的。你真正可以控制的槓桿是 524 本身,它是一個網關逾時,當呼叫執行時間過長(大約 100 秒)時就會觸發,你的 25k token 請求速度夠慢,在 gemini 今天反應遲鈍的情況下會觸發它。如果可以的話,把內容分成更小的批次進行,這樣每次呼叫都能在限制以內完成,沒有逾時就不會有重試級聯,也不會有 10 倍的燃燒。如果真的必須在一次呼叫中使用完整的 25k,另一個辦法是通過 HTTP Request 節點呼叫 gemini,在那裡你可以自己控制逾時和重試,然後之後解析 json。

感謝你,這與我看到的內容一致——我會調查 HTTP 節點,因為這可能比分塊我的提示更簡單。

感謝——我要將你的答案標記為解決方案,因為這是務實的答案。

不客氣!很高興能幫上忙!

歡迎 @am4c130d!

524 錯誤會觸發 LangChain 級別的重試級聯 - 這是 achamm 描述的根本原因。針對自託管 n8n 的一個額外修復:將 N8N_DEFAULT_HTTP_TIMEOUT 環境變數設定為更高的值(預設值為 300000ms / 5 分鐘)。如果你的反向代理或 CDN 的逾時時間比 Gemini 呼叫耗時更短,524 錯誤會在 n8n 完成之前觸發,導致在第一次呼叫實際失敗之前就觸發重試。也值得檢查:如果你使用 Cloudflare,其預設閘道逾時為 100 秒,在繁忙日期可能會影響 25K 令牌的 Gemini 2.5 Flash 呼叫。

感謝 - 我正在使用 n8n 雲端版本 - 所以 n8n 會選擇代理伺服器等設定。除了自行託管(屆時我會使用本地模型)之外,我會跟隨 @achamm 的解決方案。