在寫 AI 應用時,需要注意,權責分配問題。那我們該如何讓不同的工具各司其職,避免打造出難以維護的程式碼呢?為了解決這個問題,我們將系統拆分為三個層次,並交給最適合的工具來負責。
n8n:指揮 workflow
n8n 是一個強大的節點化 Workflow 引擎。在我們的系統中,它絕不負責複雜的文字運算或資料清洗,它只負責「控制流程」。
他將會負責 Trigger、Routing、Integration、Schedule、Retry、Notification,主要的工作是幫助系統判斷下一步驟該做什麼。
FastAPI:Processing Service
FastAPI 是一個極速的 Python Web 框架。它負責清理跟轉換資料。真實世界的資料充滿雜訊(例如充滿廣告標籤的網頁、排版混亂的 PDF),FastAPI 的任務就是把這些混亂的資料變成 AI 能夠輕鬆消化的純文字。
他將會負責 Extraction、Cleaning、Chunking、Validation 這些資料處理部分。
Gemini:Semantic Engine
Gemini 是 Google 強大的大型語言模型。在我們的系統裡,它是最聰明但也最昂貴的資源。它不會關心資料從哪裡來、也不會管處理完要存去哪,它只專注於理解。
他將會負責語意理解、長文摘要、分類、重點萃取。
把這三個工具組合起來,資料在我們系統中的流動就會變得非常清晰:

為什麼要這樣設計呢?因為這帶來了極大的抽換性與擴充性。
如果今天我們發現一份 PDF 檔案損壞,導致 FastAPI 解析失敗。在傳統寫法中,你的 Python 腳本可能會直接 Crash 退出。但在我們的架構中,FastAPI 只需要回傳一個 HTTP 400 Bad Request,n8n 收到這個錯誤碼後,就可以透過視覺化的節點,優雅地走入 Failure Branch,並自動發送一則訊息通知你,這就是 Separation of Concerns 在自動化架構中的威力。