在教學的過程中,
我看過許多人以為 AI 會讀心術或通靈。
於是問了一些沒頭沒腦的問題,
最後得出一個結論:「AI 很笨,根本沒辦法幫上什麼忙」
這就像一個外國人說:
「你們的粽子很好吃,可是外面生菜太硬了!」
啊你就完全搞錯了啊!XD
我們下面就針對「請 AI 寫一個程式/功能」的情境,
來看幾組好問題與壞問題的對比。
模糊不清的壞問題:
「我想自動填寫 Excel 表格,該怎麼寫程式?」
利用 CO-STAR 框架提問:
上下文 (Context):我有一個 Excel 表格,裡面包含了客戶資料。我希望能透過一個 VBA 程式,根據客戶的購買記錄,自動填寫對應欄位,例如「上次購買日期」和「總購買次數」。
目標 (Objective):我想寫一個 VBA 程式,從另一張表單抓取數據並填入主表格的相關欄位,避免手動操作。
風格 (Style):請用簡單易懂的方式解釋,並附上註解的程式碼片段。
語氣 (Tone):語氣應該是耐心且指導性的,適合初學者理解。
受眾 (Audience):我對 VBA 有基本了解,但不熟悉從其他表單提取數據的操作。
響應 (Response):請提供一個 VBA 程式範例,並解釋如何修改以符合不同的需求。
模糊不清的壞問題:
「我想寫個程式來計算 Google Sheets 中的總和,要怎麼做?」
利用 CO-STAR 框架提問:
上下文 (Context):我正在使用 Google Sheets 來記錄日常花費,我希望能寫一段 Google Apps Script 程式,自動計算特定範圍內的花費總和,並將結果顯示在工作表中的特定單元格。
目標 (Objective):我需要一個 Google Apps Script 程式,可以選擇特定範圍內的數字,並自動將總和填寫到指定的單元格。
風格 (Style):請以初學者能理解的方式寫出程式,並加入註解說明每個步驟。
語氣 (Tone):語氣應該是鼓勵性且清晰的,讓我能一步步學習。
受眾 (Audience):我是初次接觸 Google Apps Script,對 JavaScript 有基礎理解。
響應 (Response):請提供程式碼範例,並說明每個步驟的用途和效果。
模糊不清的壞問題:
「我想要實現一個檔案下載功能,程式要怎麼寫?」
利用 CO-STAR 框架提問:
上下文 (Context):我正在開發一個網站,使用 Flask 作為後端,前端是 Vue。我想實現一個功能,讓用戶可以點擊按鈕下載伺服器上的 PDF 檔案。
目標 (Objective):我希望能知道如何寫 Flask 後端和 Vue 前端的程式碼,以支持這個下載功能。
風格 (Style):請以開發者能快速理解的方式提供解答。
語氣 (Tone):語氣應該是直接且技術性的,便於快速實作。
受眾 (Audience):我有基礎的 Flask 和 Vue 開發經驗,但不太清楚如何實現文件下載的後端和前端交互。
響應 (Response):請提供 Flask 和 Vue 兩部分的程式範例,並解釋它們如何協同工作。
模糊不清的壞問題:
「我要怎麼寫程式來發送電子郵件?」
利用 CO-STAR 框架提問:
上下文 (Context):我正在用 Python 開發一個小型應用程式,需要自動化發送電子郵件。這些郵件內容基於一個 Excel 檔案中的數據,如客戶名稱和訂單狀況。
目標 (Objective):我希望知道如何使用 Python 的 smtplib
庫來發送電子郵件,並從 Excel 中動態抓取郵件內容和地址。
風格 (Style):請使用簡單的 Python 程式範例,並附上關於每個步驟的說明,讓我可以靈活修改。
語氣 (Tone):語氣應該是清晰且詳細的,特別是在如何從 Excel 獲取數據這一部分。
受眾 (Audience):我有一定的 Python 經驗,但從未嘗試過發送郵件和從 Excel 提取數據的整合操作。
響應 (Response):請提供一個完整的程式範例,並包含如何連接 Excel 和發送郵件的步驟。
模糊不清的壞問題:
「我要怎麼寫一個表單驗證程式?」
利用 CO-STAR 框架提問:
上下文 (Context):我在開發一個基於 React 的網頁應用程式,表單中包含用戶名、電子郵件和密碼。我想實現一個前端表單驗證功能,來檢查這些欄位的有效性,例如電子郵件格式和密碼強度。
目標 (Objective):我希望知道如何在 React 中寫一個表單驗證功能,檢查用戶的輸入是否符合要求。
風格 (Style):請用 React Hooks 的方式解釋,並包含簡單明瞭的程式碼範例。
語氣 (Tone):語氣應該是教學性的,適合初中級 React 開發者學習。
受眾 (Audience):我有基礎的 React 知識,但對於表單驗證的最佳做法還不是很熟悉。
響應 (Response):請提供具體的程式碼範例,並解釋每個驗證規則的實現方式。
看完上面的問題對照,
有人說「怎麼那麼麻煩?問個問題還要打這麼多字……」
第一,你可以不要用打字、改用說的。ChatGPT 的語音辨識已經做得非常成熟了。
第二,你可以慢慢等腦機介面成熟,到時候直接用想的,既不用打字也不用講話。
但話說回來,
最累的事情既不是打字也不是講話,
最累的其實是思考。
而思考是免不了的。
好好地思考,好好地提問,
絕對可以讓你的工作效率飛速提升。
當你熟練於問出關鍵且有效的問題,
不只能寫出你要的自動化程式,
在工作的其它面向,你也會更知道怎麼請 AI 幫你做事。
AI 不笨也不聰明,
它就是一個工具。
就看用它的人能不能發揮它的價值了。
講完提問的框架與技巧,
下一個單元開始,
我們會連續觀摩好幾個不同的自動化案例,
都是我或我身邊的人實際使用到的。
我想任何人都可以從這些案例中,
找到一些自己可以做的自動化靈感!