PDF 載入器錯誤:「無法載入 pdf-parse。此載入器目前僅支援 pdf-parse v1」

嗨各位,

我在 n8n 中處理 PDF 檔案時遇到了一個問題。

錯誤訊息
無法載入 pdf-parse。此載入器目前僅支援 pdf-parse v1。
請安裝 v1,例如 npm install pdf-parse@^1
(尚不支援 v2)。
環境
n8n 版本:2.20.9
部署:[自我託管 / Docker / npm install]

我在嘗試做什麼

我正在使用 PDF 載入器/文件處理工作流程,每當 n8n 嘗試解析 PDF 時都會收到上述錯誤。

問題
有人最近遇過這個問題嗎?
哪個元件需要 pdf-parse v1?
如果在 Docker 中執行 n8n,強制安裝 pdf-parse@^1 的建議方式是什麼?
在新增 v2 支援前,是否有相容性修復或解決方法?

任何指導都將不勝感激。

感謝!

@Bhavin_Patel

你看到這個錯誤是因為 n8n 正在嘗試使用一個名為 pdf-parse 的工具來讀取 PDF。問題在於「Document Loader」節點設計用來只能搭配舊版本 (v1) 的這個工具運作,但你的系統已安裝了較新的版本 (v2)。這個版本不匹配會導致流程崩潰。

會發生這個問題是因為 n8n 依賴一個名為 LangChain 的外部函式庫來處理文件。LangChain 在其程式碼中有一個嚴格的規則,用來檢查 PDF 解析器的特定版本。當它偵測到較新的版本時,它會停止工作流程並告訴你進行降級,儘管較新的版本通常更加最新。

最好且最簡單的解決方案是將你的 n8n 安裝更新到版本 2.23.0 或更高版本。n8n 團隊發布了一個修正,用他們自己的自訂版本取代了挑剔的 LangChain 加載器。這個新加載器與 pdf-parse v2 相容,可以消除錯誤並讓你的 PDF 正常處理。

如果你無法更新 n8n 且正在使用 Docker,你可以「強制」將舊版本放回你的系統。你可以透過建立一個自訂 Dockerfile 來做到這一點,該檔案會特別安裝 pdf-parse 版本 1.1.1。這實際上是在欺騙 Document Loader,讓它認為環境是正確的,這樣它就可以再次運作。

FROM docker.n8n.io/n8nio/n8n:2.20.9

USER root
RUN npm install -g pdf-parse@1.1.1
USER node

注意: 你需要建立並執行這個映像檔,而不是使用預設的映像檔。

對於更可靠的長期解決方案,你可以完全跳過「Document Loader」節點。相反地,使用「Code Node」來手動從你的 PDF 中提取文字。透過在你的環境變數中啟用特定設定,你可以告訴 n8n 讓 Code Node 直接處理 PDF,繞過有問題的加載器並讓你的工作流程繼續進行。

如果有幫助的話請告訴我