iT邦幫忙

2023 iThome 鐵人賽

DAY 18
0

前言:Prompt模板之亂

自從ChatGPT走紅,網路上出現各種Prompt的模板分享。你可能曾經看過這樣的標題:「100+個必收藏的Prompt模板」、「終極詠唱師:Prompt模板全攻略」等等,手指頭像神經反射般立馬按讚、加到我的最愛,然後...就沒有然後了XD 它就永遠塵封在資料夾裡~

其實我對這種「模板熱」實在一頭霧水,不知道有沒有人跟我有一樣的困惑?

因為在我的認知裡,Prompt其實就是問問題,那...每個人的情況、要解決的事情都不同,你要輸入的問題一定各不相同,這種東西怎麼可能「照抄」別人寫好的模板呢???

因此,我本來是不算在這系列文過多著墨Prompt,直到我在鐵人賽期間看到簡光正大大分享的《The Way of Prompting》後深受啟發,也看見了在日常工作實現自動化的可能。

我重新審視了自己的使用狀況,並結合自己的使用經驗與心得,挑出幾個大家在最常遇到的問題、迷思,還有能立即在實戰中應用的技巧,迫不及待想跟大家分享。

那~我們就開始吧~

.
.
.


什麼是Prompt?

乍看之下,會疑惑「這是不是個專有名詞?」事實上,只要是我們鍵入在自然語言模型(ex:ChatGPT)的問題,都算是Prompt的一種。

不過,在Prompt裡面也有一些特定的詞語,用簡短的文字就能在代表特定的意思,例如「#zh-tw」、「#en-us」就代表希望以繁體中文、英文回答。

《The Way of Prompting》有提出一些常用的基本指令Prompt,分別為:

  1. 繼續
  2. 總結
  3. 萃取(摘要)
  4. 翻譯
  5. 重寫

大家看了有沒有覺得很眼熟XD

沒錯...我們安裝打著AI名號的 Chrome外掛,基本上就是圍繞著這幾個功能去打轉的~所以如果我們學會寫自定義的Prompt模板,就可以打造更襯手的工具。

萬丈高樓平地起,我們一步步來。
.
.
.


好問題 VS 爛問題

首先,我們要學會怎麼提個「好問題」!

我精心設計了5種超擬真的情境(超有誠意的~),等一下摸著良心看看自己有沒有寫過類似以下的NG範例。誠實喔XD

1. API報錯的時候

【X】
ex1: 為什麼我的API報錯了?
ex2:(不發一語,直接貼一段錯誤訊息enter)
ex3: 請問API報錯,通常該怎麼處理?

【O】
我打一個GET的API時,遇到一個404錯誤。我檢查了URL的參數,都有帶到值。附上錯誤訊息,請幫我看一下為什麼會報錯?

.

2. 詢問特定的技術、專有名詞(一)

【X】
什麼是Angular?

【O】
step 1
我想了解Angular,請問有些基本的知識點是我必須認識的? 請列點式說明。

step 2
(針對回覆再個別詢問了解)

step 3
(請ChatGPT將以上討論對話做成摘要,貼到筆記軟體)

.

3. 詢問特定的技術、專有名詞(二)

【X】
什麼是Nx?

【O】
我預計在Angular16使用Nx工具,請用超級白話簡單的文字,向一個程式初學者介紹Nx
包含他的原理、應用的地方、使用它的好處與壞去、其他我應該知道的重要事情

.

4. 環境建置

【X】
SSR要怎麼建置?

【O】
我使用Angular作為前端框架,並使用Nust.js當做後端框架。現在想要導入SSR,請問有哪些方案?

.

5. TypeScript的學習

【X】
我想學Typescript,可以幫我安排學習計畫嗎?

【O】
我寫JavaScript兩年了,現在想學TypeScript,希望可以將我目前專案的程式從JS轉成TS。我每個禮拜可以撥出兩個小時學習,請你幫我安排一份學習計畫。

.
好了,摸著良心說說看自己中過幾個吧~

.
.
.


歸納NG問題 你中了幾個?

1. NG問題:沒有充分告知必要的背景資訊

《The Way of Prompting》的作者提到:「人聽得懂,AI才能懂。」這句話非常能體現在一堆「爛問題」上,我們拿問題一、問題四來看,如果今天直接原封不動地把NG版本發在社團裡,你應該會直接被砲XD

所謂的「背景資訊」,包含但不限於發生了什麼事、你在什麼情況碰到這個問題等等,多給一些details才能更確切的知道這個issue的脈絡是什麼。
.
.

2. NG問題:沒有告知目的、想解決的目標

我們可能曾經有這樣的經驗,工作信箱收到一封email,但看完之後還是不曉得對方到底想幹嘛?這就是沒有明確告知「目的、想解決的目標」的常見例子。

不同的目的也會有不一樣的答案。就拿問題五來說,在知道你的主要目標是想將一個JS的專案成TS後,ChatGPT幫你設計的計畫表也會更著重在比較JS、轉換等等議題上。

清楚告知你的目的,才能更快得到自己想要的東西,事半功倍。
.
.

3. 一口氣把話講完 vs 分段式對話

假設我們要問的問題稍微複雜一點,分段式的提問會比一次把所有的資訊塞給對方來得好。向人請教問題的時候是如此,向ChatGPT溝通的時候也是一樣。

當問題比較複雜、龐大的時候,也代表有許多地方有些不確定性、需要進一步確認。分段式的提出問題,也能確保在每個可分岔的路口,雙方的認知是保持一致的。雖然多了幾個來回,但不需要一次就消化一個過於複雜的資訊,也能更輕鬆地得到更準確的答案。
.
.
.


如何優化自己的Prompt

其實就是多下指令、自己多檢討,慢慢就會進步了。

.
.
.
.
.
.

.
.
.
.
.
.
.
.

好啦,我提供兩個辦法給你參考。
畢竟如果你都願意看到這 ╮(╯▽╰)╭
.

1. 特訓一:2023六角NodeJS特訓班的《指令練習菜單》

大家碰到的第一個問題可能是,要拿什麼東西來練習?

的確,如果沒有一個特定的情境,去完成一個特定的目標,會比較沒辦法立即投入練習。因此,經過六角的同意後,分享這份《ChatGPT AI 程式題詠唱訓練》給大家。

這是我今年在參加六角NodeJS特訓班的時候,在開課前要完成的暖身作業之一。大家可以試著練習看看這份練習菜單,愈後面愈有挑戰性歐。

.
.

2. 特訓二:問ChatGPT得到反饋後調整

在《原子習慣》、《刻意練習》等學習方法相關的熱門書籍,裡面都強調回饋的重要性。有了反饋我們才能確定自己沒走歪,我們才能知道怎麼樣去 優化 我們的技巧。在你日常使用ChatGPT處理完手邊的問題時,就可以直接問ChatGPT,這是最快可以得到「優化建議」的方法了!

我這裡就做個簡單的示範,假設我的目標是「找出一個特定營養素(比如維他命C、鐵等)在人體健康上的作用」,我向ChatGPT發問後,再接著詢問我剛剛的提問有沒有什麼能進步的地方。(完整對話請見此連結

.

That's it!
接下來就是不斷的調整、改進囉。

.

.
.
.


今日回顧

相信會看到這裡的人,都是想要精進Prompt之道的夥伴們!如果你正在苦惱不知道該怎麼提好問題,希望這篇文章可以幫到你:)

其實只要有把自己目前的處境、想解決的目標、卡住的點寫進去,基本上就已經構成了一個好問題的必要條件。

明天我們將和大家聊一聊,其實「輸入的問題愈簡短」跟「ChatGPT輸出的品質」不一定成正比關係。

這話怎麼說呢?
欲知後事如何,且待下回分解~


上一篇
AI Coding外掛全面對決:哪個是你的最佳選擇?
下一篇
Prompt的精進之道(2):「Prompt愈短愈好」的長度迷思?
系列文
軟體工程師必備的AI工具力—— 全方位實戰應用X核心Mindset養成30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言