卷首語:
這一期可能會比較難一些,平常比較多動手實作的讀者可能比較好上手,覺得太難的朋友推薦可以先自己建立簡單實用的機器人為目標,然後再深入這個 Workflow 來實作看看。如果還是太難看看卷首語的心情分享就好🤣。
上上週教召 5 日,消失了五天覺得過的真久。除了第三天的打靶外,其它天還是蠻輕鬆的,尤其是第四、五天,休息時間超多可是很無聊。
最近看到很棒的座右銘,源於古代波斯的一個傳說。
據說一位波斯國王向他的大臣尋求一個座右銘,讓他在任何情境下都能用上。
大臣深思後給了一句『一切都會過去的』,原文 “This too shall pass“。
讓國王知道,人生無論順境、逆境、快樂、痛苦、煩惱,一切終將過去。
希望讀者們也能隨身攜帶這句話,無論順境逆境。

友情推薦課程:Axton 的 AI 實戰 & 自動化
如果你是一位剛接觸 AI 的朋友,卻不知道如何系統性地學習,我有位朋友 Axton 在過去一年間詳細解構了「使用 AI」這件事,並形成了一套學習方法,分成了兩個面向:
提示詞工程(學習與 AI 溝通的魔法)
自動化軟體(如 Zapier、Make 等軟體)
現在網路上有很多分散的資源可以學習,不過如果要推薦一個付費的 AI 課程,我會優先推薦 Axton 的課程。
我從去年年初開始訂閱 Axton 的 YouTube 頻道,知道他是第一批接觸 LLM 的人,後續也在 Twitter 上與他交流許多,因此我可以保證他的功力和課程品質。
大家可以先看他的 YT 頻道內容:
雖然內容是簡體中文,課程也是簡體中文,但對於許多不精通英文的讀者來說,還是相對容易理解。
如果你已經熟練使用 LLM,我建議你只需參加自動化課程即可。如果你是新手,且有「自動化工作日程」的需求,那麼建議你一次參加兩堂課。
雖然我有時也會分享一些自動化的經驗,但還是沒有 Axton 那樣系統性。
現在的課程都不便宜,所以讀者在購買時一定要量力而行,也可以先看看 Axton 的其他作品。如果在工作上真的用得到,並且希望提升自己的競爭力再購買,評估下來我認為 Axton 這些課程還是相當值得的。
目前課程的三種方案及相關優惠:
AI 實戰派(成為與 AI 溝通的達人):
AI 自動化(提高數位工作者效率的一大利器):
「AI 實戰派」+「AI 自動化」組合購買(便宜快 1000 元,最推):
加入還有專屬 Discord 社群討論喔 🎶
<正文開始>
如果沒有實作過的讀者推薦先從這篇簡單的 Coze 機器人教學入手:
最近 Coze 開始收費了,不過因為在調用 Plugin、Workflow 等功能都需要用上大語言模型的推理能力,加上產品幾乎每隔幾天就會迭代,所以收費是很正常的。
大家可以先使用免費方案或是每月 9 美元的方案,應該就很夠用了,當然也有些像 Dify 這類的開源工具可以嘗試,但背後的迭代速度和好用程度就不如 Coze,所以我個人更推薦 Coze。
為什麼人人都該開始用 Coze 這類的工具
這兩年 LLM(大語言模型)出來後,開始有聲音說 AI 會取代大部分人類的工作、會用 AI 的人將取代不會用 AI 的人等等,但說歸說我相信大家可能不是很有感。
因為這個作用是『時間累積』的,不會有人一朝一夕就學會使用 AI、突然就會 Prompt 技巧、突然變成 LLM 溝通大師。
就算是上完課程,也只是剛過一個門檻,一定要在生活中刻意思考自己的工作如何融入這些語言模型,然後結合不同的工具來解決問題。
怎麼用工具真的還好,多用幾次就會上手,而且很多相似工具的邏輯都差不多(像是 Make 跟 Zapier)。
但最最最重要的就是,一般不熟悉程式開發的人,如何清楚思考解決問題的流程,然後將這些流程建立起來。
之前 Devin AI 創辦人 Scott Wu 在演講上提到(推薦看 ihower 的整理):
現在普通的軟體工程師可能花 10%~20% 的時間在思考部分,而 80%~90% 的時間在實現。但未來會反過來,大部分的時間將用於前段的思考解決問題的方法上。
這段反覆強調的點就在於,我自己不是開發人員,接觸了許多 AI 工具也嘗試實作,深刻體會實作及不斷思考解決方案的重要性,需要『時間』磨練。
也正因如此,這個技能在未來會變很強的技能不易取代。
Workflow 是什麼?
假設我今天要從台南前往台北參加生成式 AI 年會,我可以怎麼去?
開車
搭火車
搭高鐵
以搭高鐵為例,我需要:
騎機車到火車站
搭區間車前往沙崙站
搭高鐵前往台北車站
騎 GoShare 或搭計程車前往會場
前往目的地的方法很多種,整個過程就是一個工作流,而過程中也會有多個節點,每個節點都完成固定的任務。
工作流就是透過標準化的步驟、預先設定好的流程,來逐步完成特定任務和過程中的預期目標。
ComfyUI 就是一個基於AI繪圖模型 Stable Diffusion 節點流程的操作界面,它把任務用視覺化分解成若干個步驟,然後逐步調整要達到的小目標,讓最終結果符合需求。

像這張圖的工作流如下:
首先會分別生成背景和角色的圖片。
接著使用名為 "ImageCompositeMasked" 的工具來去除角色圖中的背景,並使它與新的背景對齊。
然後應用一個叫做 "denoise:0.5" 的技術來減少最終圖像中的雜訊,使畫面更乾淨清晰。
再利用另一個工具"KSampler",重新生成整體圖像,以便讓角色和背景更加自然地融合在一起,看起來更協調一致。
最後,採用了“FaceDetailer”這項技術,專門針對合成圖像中的人臉部分進行細節優化,使得人物面部看起來更加生動、真實。
同理,Coze 上的 Workflow 就是用來解決問題的工作流工具。
工作流基本由輸入、輸出、中間節點所組成。
中間節點就是左邊那一排,由 Plugin、LLM、Code、Knowledge 等組成,這邊不會全部講到,只會講到最基本的前三個,只要會用其它的功能慢慢摸索就知道怎麼用了。
一開始容易搞到頭暈的可能是變數的部分。
<懂變數可以跳過這個小說明>
變數是一種容器,用來儲存不同的值。在程式設計和數學中,變數的概念非常常見。
程式設計中的變數:
想像變數是一個標有名字的盒子,你可以把東西(數值、文字、物件等)放進這個盒子裡,然後根據需要隨時取出來使用。
假設你有一個變數叫做
age
,你可以把你的年齡(比如 25)存進這個變數中。之後,當你需要使用你的年齡時,只需要引用這個變數age
就可以了。範例程式碼:
```
age = 25 print("我的年齡是", age)
```在這個例子中,
age
是變數,25 是存進這個變數中的值。
數學中的變數:
在數學裡,變數通常用來表示未知的數值或可以改變的數值。它們常用字母來表示,比如 x, y, z。
例如,在方程式
x + 2 = 5
中,x 是一個變數,你可以解出 x 的值是 3。
Plugin
各種別人寫好的功能,加上去直接用就好。
像是 Google Search,如果我們在解決問題的過程中,需要機器人去 Google 搜尋資料並返回,那『Google Web Search』這個 Plugin 就很實用。
如果需要瀏覽 URL 中的內容物,就可以用『Browser』這個 Plugin。
節點之間如何連結
從這張圖可以看到,每個節點之間連結的關鍵就是變數。以剛剛的『Google Web Search』這個 Plugin 節點連結為例。
在 bot 的初始設定中,我們要告訴 LLM,當使用者有搜尋資料的需求時,將需求分解成搜尋用的關鍵字,並使用變數 Search_keyword。
這樣當 bot 在調用 Workflow 時,就會自動代入搜尋關鍵字到 Start 這個初始節點的變數中,然後連結至我們的搜尋 Plugin 中,這樣我們就完成了一次節點的連結,以及設定對應的 input/output。
點開節點的 Output,我們可以看到該 Plugin 執行任務後會有哪些輸出,這些是我們要選擇到下個節點連結的變數。
但有些節點上的 Output 需要我們自己設定喔,只有特定功能才會有指定的 Output 結果。
不用被這麼多東西嚇到,點開 View Example 我們可以看到 Debugging result 那裡的 Response 結果,link、snippet 及 title 其實就是對應 Google 搜尋結果頁面每個結果的標題、網址及敘述。
變數很多,我們只需要在不同節點選擇我們要的變數讓它進入下個節點即可(也能引用之前不同節點上的變數)。
Workflow 的核心在於:
Bot 知道它何時該調用哪種 Workflow,然後給這個 Workflow 對應的變數;
Workflow 中的每個節點正常連接;
善用既有的 Plugin 實現功能。
從 X(前身 Twitter)抓取新聞資訊
先想好自己平常執行任務的流程,然後思考每一步如何化成一個節點,每個節點解決任務的方法有哪些。
第 0 步:來源
先請大家思考,如果要從 X 上看新聞,我們通常會怎麼開始(還沒程式化)?
List 清單,例如『設計 AI』這個清單
追蹤特定的人
其它(自己想 XD)
這一步,要怎麼變成程式?善用 Plugin。
在 Workflow 中找看看有沒有 X 的 Plugin 可以用,所以我進行了搜尋:
原本想透過 List 的方式來抓取推文,結果發現沒有適合的 Plugin(也可能是我不會用),所以我找了另一個替代方案:使用搜尋的方式。
你沒聽錯,因為搜尋語法可以抓出特定用戶在特定時間內,按讚數或分享數達到一定數量以上的貼文,像是這樣:
(from:op7418 OR from:imxiaohu OR from:dotey) min_faves:70 since:2024-07-18 until:2024-07-21
這樣就能很好地實現我找重要新聞的幾個訴求:
特定時間
特定點讚數(熱門)
特定用戶
我透過這個 Plugin 來實現,只要將 query 代入:
然後每個 node 都有一個測試。
然後是測試結果(Output),可以再拿結果到下個 node 進行下個測試。
然後在下一個節點,我用 LLM 來整理抓到的這些貼文內容:
完整流程如下:
一開始 bot 設定如何呼叫 Workflow 的方法,然後因為篩選資訊時跟資訊有關,所以要送入日期的變數 data_start 和 data_end。
然後在 Coze 中,一樣可以用自然語言寫出 Python 程式,我請程式幫我把帶有日期的參數跟我要查詢的語法合成對應的查詢 query。
程式碼也很簡單如下:
然後剛剛的 query((from:op7418 OR from:imxiaohu OR from:dotey) min_faves:70 since:2024-07-18 until:2024-07-21)會被送入推特搜尋後,把篩選結果拉出來。
上圖處理 retweet 貼文這個,是為了把 retweet(轉貼分享)從一般貼文分出來,retweet 讀取不到內容只有轉貼註解的文字。
最後就是靠 LLM 整合這些資訊了。
完了到這邊大家應該看不太懂XDDD
原本自己做覺得還好,但寫成文字突然發現好像反而更複雜了,我會再拍一部影片講解的!
總之先思考好流程,想可以程式化每個節點的方式,然後一定會遇到挑戰,想各種辦法解決它,先從笨方法開始,然後再優化解法。
期待影片介绍
非常具体的例子,以后可以直接抄作业,赞!!