各種節點的十二之型
上一章學會了「開始 → LLM → 輸出」,那只是節點庫的冰山一角。這一章把 Dify 所有核心節點整理成十二種「型」——像劍法套路一樣,每個型解決一類問題。熟練之後,任何業務流程都能拆解成這些型的組合。
本章目標
- 要學什麼
- 以「型」(模式)掌握 12 種核心節點的用途與組合方式
- 學會的技能
- 依目的選擇合適節點、節點間的資料流設計、外部 API 串接實作
- 能做出什麼
- 條件分流客服、批次資料處理、API 整合應用、結構化資料擷取器
6.1先看全貌:節點面板
在任何節點按「+」就能打開節點面板。把裡面的節點對應到十二之型:
| 型 | 節點 | 解決什麼問題 |
|---|---|---|
| 壹・開始–輸出 | 開始/輸出 | 定義輸入表單與最終輸出,一切流程的骨架 |
| 貳・開始–LLM–輸出 | LLM | 「究極之型」:九成的單步 AI 任務靠它就夠 |
| 參・條件分歧 | 條件分支(IF/ELSE)/問題分類器 | 依內容走不同處理路線;分類器可用 AI 自動分流 |
| 肆・知識檢索 | 知識檢索 | 在流程中查知識庫,把結果餵給下游 LLM(RAG 工作流版) |
| 伍・參數擷取 | 參數提取器 | 從自然語言中抽出結構化欄位(日期、地點、金額…) |
| 陸・迴圈處理 | 迭代/循環 | 對清單中的每一項重複執行同一段子流程 |
| 柒・定型文處理 | 模板轉換 | 用 Jinja2 模板把多個變數組裝成固定格式文本 |
| 捌・程式碼執行 | 程式碼執行 | 最後一哩路的王牌:用 Python/JavaScript 做任意資料處理 |
| 玖・API 召喚 | HTTP 請求 | 呼叫任何外部 API,把世界接進流程(本章實作) |
| 拾・平行執行 | (多條連線)+變數聚合器 | 同時跑多個分支再彙整,時間減半 |
| 拾壹・檔案處理 | 文件提取器/清單運算子 | 讀取 PDF、Word、音訊等檔案內容進流程 |
| 拾貳・結構化輸出 | LLM(結構化輸出開關) | 讓 LLM 穩定輸出符合 JSON Schema 的資料 |
設計流程時先問三個問題:「輸入是什麼?輸出是什麼?中間要經過哪些變換?」每一個「變換」對應一個型。想不出來就從貳之型開始,遇到瓶頸再替換成專用節點。
6.2實戰玖之型:HTTP 請求節點串接天氣 API
十二型中最能開眼界的是「API 召喚」——它讓工作流跳出 LLM 的世界,連接任何網路服務。我們做一個「天氣速報」:輸入城市名,回傳即時天氣。使用免費、不需註冊的 wttr.in 服務。
- 建立工作流新增工作流應用「天氣速報」,開始節點加入輸入欄位
city(顯示名稱「城市名稱(英文)」)。 - 加入 HTTP 請求節點開始節點按「+」→ 選「HTTP 請求」。方法保持
GET,URL 填:https://wttr.in/{{# 開始.city #}}?format=3輸入{一樣會跳出變數選單,把city變數嵌進網址中。format=3是 wttr.in 的單行文字格式。 - 接上輸出節點輸出變數取名
weather,值選HTTP 請求 / body——HTTP 節點的回應內容。 - 測試運行輸入
Taipei,執行。
Taipei: 🌤️ +34°C——工作流真的打到了外部 API 並取回即時資料。HTTP 節點的輸出有三件套:
body(回應內容)、status_code(狀態碼)、headers。實務上常見的組合是「玖之型+捌之型」:HTTP 拿回 JSON,接一個程式碼執行節點解析、只取需要的欄位,再交給 LLM 或輸出——這正是原書「資料抽出、整形」的經典套路。6.3其他各型的使用要領
6.3.1參之型・條件分歧:IF/ELSE 與問題分類器
條件分支適合規則明確的判斷(字串包含、數值比較、變數是否為空);問題分類器則是用 LLM 理解語意後自動分流——建幾個分類(例如「售前諮詢/售後客訴/閒聊」),每個分類接不同的下游處理。客服系統的第一站幾乎都是它。
6.3.2伍之型・參數擷取:從人話變欄位
「我想訂 7 月 15 日從台北到高雄的高鐵,兩張成人票」→ 參數提取器可直接抽出 date=7/15, from=台北, to=高雄, qty=2。定義好參數名稱與說明,模型自動填值,下游節點就能拿到乾淨的結構化變數。
6.3.3陸之型・迭代:清單逐項處理
迭代節點吃一個陣列(Array),對每個元素跑一遍內部子流程,結果再彙整成新陣列。長文分段翻譯、批次改寫商品文案、逐項審核清單,都是它的舞台。搭配「拾之型」的平行開關可以多項同時處理。
6.3.4捌之型・程式碼執行:規則類邏輯的最短路徑
凡是「有明確規則」的處理——格式轉換、數值計算、字串清理、JSON 解析——寫三行 Python 比呼叫一次 LLM 更快、更準、零成本。Dify 的程式碼在沙箱中執行,輸入變數自動注入,return 的字典就是輸出變數。
# 範例:統計字數並取前 100 字
def main(article: str) -> dict:
return {
"length": len(article),
"preview": article[:100],
}
6.3.5拾貳之型・結構化輸出:給 LLM 上規矩
LLM 節點面板裡有「結構化輸出」開關:定義一個 JSON Schema,模型的回答就會嚴格符合這個結構——做名片辨識、發票擷取、表單填寫時,再也不用祈禱模型「乖乖輸出 JSON」。
6.4本章回顧
- 十二之型 = 十二類問題的標準解法;流程設計就是型的排列組合。
- HTTP 請求節點讓工作流連接整個網路世界;URL、Header、Body 都能嵌變數。
- 規則明確用程式碼執行,語意判斷用 LLM/問題分類器——選對工具事半功倍。
- 迭代處理清單、模板組裝文本、參數提取器把人話變欄位。
型是內功,工具是兵器。下一章我們深入工具的世界——Web 瀏覽、Code Interpreter、把工作流本身變成工具,以及自訂工具的製作。