第 6 章

各種節點的十二之型

上一章學會了「開始 → LLM → 輸出」,那只是節點庫的冰山一角。這一章把 Dify 所有核心節點整理成十二種「型」——像劍法套路一樣,每個型解決一類問題。熟練之後,任何業務流程都能拆解成這些型的組合。

本章目標

要學什麼
以「型」(模式)掌握 12 種核心節點的用途與組合方式
學會的技能
依目的選擇合適節點、節點間的資料流設計、外部 API 串接實作
能做出什麼
條件分流客服、批次資料處理、API 整合應用、結構化資料擷取器

6.1先看全貌:節點面板

在任何節點按「+」就能打開節點面板。把裡面的節點對應到十二之型:

工作流節點面板,列出所有可用節點
圖 6-1節點面板:LLM、知識檢索、輸出、Agent、問題分類器、條件分支、迭代、循環、程式碼執行、模板轉換、變數聚合器、參數提取器、HTTP 請求、清單運算子……「工具」分頁還有第 4 章裝的那些工具。
節點解決什麼問題
壹・開始–輸出開始/輸出定義輸入表單與最終輸出,一切流程的骨架
貳・開始–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 服務。

  1. 建立工作流新增工作流應用「天氣速報」,開始節點加入輸入欄位 city(顯示名稱「城市名稱(英文)」)。
  2. 加入 HTTP 請求節點開始節點按「+」→ 選「HTTP 請求」。方法保持 GET,URL 填:
    https://wttr.in/{{# 開始.city #}}?format=3
    輸入 { 一樣會跳出變數選單,把 city 變數嵌進網址中。format=3 是 wttr.in 的單行文字格式。
  3. 接上輸出節點輸出變數取名 weather,值選 HTTP 請求 / body——HTTP 節點的回應內容。
  4. 測試運行輸入 Taipei,執行。
開始、HTTP請求、輸出三節點的工作流
圖 6-2完成的流程:開始 → HTTP 請求(URL 中嵌著 city 變數)→ 輸出。注意 HTTP 節點內建「失敗時重試 3 次」,串接不穩定的外部服務時特別實用。
測試運行結果顯示台北天氣
圖 6-3執行結果: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本章回顧

型是內功,工具是兵器。下一章我們深入工具的世界——Web 瀏覽、Code Interpreter、把工作流本身變成工具,以及自訂工具的製作。