設計一個流程 是做什麼的?
使用此技能將一個請求(例如「製作一個計算文字中單字數量的流程」)轉換為步驟計劃。然後再使用 create-process 技能來建構它。
套件位於 process_package/。父類別位於 process_package/toy_process/process.py。
1. 列出步驟
將目標寫成一個有序的清單,每個項目是一個簡短的動作(動詞片語):
WordReport
1. 清理文字
2. 計算單字數量
3. 建立報告
每個步驟應只做一件事,並將其結果放入共享的 context 字典中。
2. 決定每個步驟的類型
對於每個步驟,請選擇:
| 當...時,使用方法步驟 | 當...時,使用子流程步驟 |
|---|---|
| 它是一個小動作 | 它是由幾個相關動作組成 |
| 它只在這裡使用 | 它可以在其他流程中重複使用 |
| 它不需要自己的設定 | 它有自己的參數 |
子流程可以包含子流程。保持嵌套層次淺:對於大多數玩具流程來說,兩層就足夠了。
3. 寫下計劃
對於每個流程(父流程和每個子流程),記錄:
- 類別名稱:使用駝峰式命名法(CamelCase)的名詞或動詞片語,例如
CleanText。 - 參數:名稱 → 預設值。這些放在
set_parameters中。 - 步驟:按順序排列。方法使用蛇形命名法(snake_case);子流程使用其類別名稱。
- Context 鍵:每個步驟讀取和寫入的內容。
計劃範例:
CleanText 參數: lowercase=True
- strip_punctuation 讀取 text 寫入 text
- normalise_case 讀取 text 寫入 text
WordReport 參數: text="", lowercase=True, top_n=3
- load_text 讀取 - 寫入 text
- CleanText(lowercase=...) (子流程)
- count_words 讀取 text 寫入 counts
- build_report 讀取 counts 寫入 report
4. 檢查計劃
- 每個步驟讀取的 context 鍵都必須由較早的步驟寫入。
- 每個步驟使用的參數都必須存在於該流程的參數中。
- 子流程從父流程接收參數作為關鍵字參數,例如
CleanText(lowercase=self.params["lowercase"])。
如果請求不明確,請向使用者顯示計劃,然後遵循 create-process 技能。