今天我們要來正式講解提示詞工程,如何建構起高效、穩定的 AI 應用。
整個提示詞工程都是在做一件事,如何明確的命令 AI 做事。
重點就是命令,我們用什麼樣的文字、怎麼樣的話術,通過精確的語言輸入,讓 AI 理解我們的意圖,並生成符合需求的結果。
而這段專門用來命令與催眠 AI 的文字,便被稱為提示詞(prompt)
一個啥工作經驗都沒有,雖然學習了很多知識、但尚不懂融會貫通,在很多難點上頭也不懂得轉彎,這就是 LLM
所以在任務指派上,不要派給 LLM 太過複雜的任務,如果可以盡量拆分任務,我這邊舉一個例子
【教我怎麼交女友】
這個任務困難,那怕是找我來也沒辦法教得很好(QQ
所以我們就可以把它拆分成好幾個任務
【如何跟女生聊天】 → 【如何跟女生拉近關西】→【如何跟女生告白】
原本複雜而麻煩的一個任務,變成了更簡單的三個任務,這三個任務總體而言仍就為了解決如何跟女生聊天的最終目標,但是實際操作起來卻比較簡單
提示詞工程就與管理一間公司無恙,確認好公司的核心業務,訂好公司的工作 SOP,最後確認每個員工都有在好好工作。
基於這個原則,提示詞工程我分成三大部分
定義最終目標
定義好 SOP
讓每個員工都能好好工作
就好比我們的 suta.io 的最終目標就是讓 AI 可以透過程式碼,撰寫一篇通順、好理解的程式閱讀文件
你要先確定你的任務是什麼,並且用文字寫出來
仍然是剛剛 LLM 就如同一個一般大學生,聰明、但無法處理太過複雜的任務。
所以你必須將剛剛定義好的最終目標,拆分成數個步驟
讓 AI 一次只 focus 在一個小問題,這樣再生成品質上能有很大的提升
定義好任務後,再來就是讓每個 LLM 實際下場工作了,你必須不斷調整你的提示詞,讓 LLM 更理解每個任務再說麼
也就是不斷疊代、不停疊代、畢竟人類的語言沒有最好、只有更好
為了命令好一個懵懂無知的大學生,我們在用字遣詞上得特別小心,以下是幾點注意事項
明確表達需求
AI 是你的員工,不是妳男朋友,你的提示詞應該清晰表達你想要的結果,避免含糊或模糊的語句。
具體的情境或指引、甚至是角色扮演
在詢問一個問題時,好比說你想詢問法律問題,你或許會這樣問
【我在路上被一隻超壯的貓打了,能求償嗎?】
這樣的問題,在不同的國家、不同地區都有完全不同的答案,所以聚焦你的地區、將所有 AI 必須知道的情境都告訴他
【你現在是一個專業的台灣律師,我現在人在台灣,我在路上被一隻超壯的貓打了,能求償嗎?】
避免舉例
這個是很反直覺的教條,但這是我開發了多個專案後的經驗,請務必注意
跟一般人講解某個事情時,我們習慣舉例
然而這對 LLM 可能會讓一切更糟糕,因為 LLM 在回應時,很容易被這個”舉例”給限制住
我這邊舉個例子,以下是實際出現在我的備忘錄貓貓 APP 的提示詞
是引導 AI 幫忙設定鬧鐘用的
然而他卻導致了,即便用戶什麼話都沒有說時,LLM 會不明原因的輸出 /set alarm 8:00 起床
舉例確實能增加 AI 對事情的理解,但隱憂更大
而且也大幅增加的 input 的 token 成本
如果有人跟你說設定鬧鐘,請你輸入以下指令
/set alarm [時間] [標題]
舉例來說,當有人說他想在早上八點起床
請輸入
/set alarm 8:00 起床