iT邦幫忙

2024 iThome 鐵人賽

DAY 12
0
Modern Web

與 AI 一起開發 Side Project 吧!系列 第 12

Day12 — 牛刀小試 | AI 回答不甚滿意,那如何請 AI 修到滿意為止?

  • 分享至 

  • xImage
  •  

前言

大家還記得上次 AI 最後產出的程式碼嗎? 忘記沒關係,再給你看一次。

將將~ 長這樣!

https://ithelp.ithome.com.tw/upload/images/20240922/20168308RCPHlfsGHE.jpg

嗯…歪七扭八的,我知道是沒有很好看,不過基本功能都有喔(心虛),接下來就是要把如此的成品,看怎麼用 AI 改成跟設計稿一樣囉!

修改大法

條列問題點

就跟平常寫程式修 bug 一樣,先把顯而易見的問題點列出來,再來看怎麼修。如此一來才方便逐一修正,不容易遺漏錯誤。

根據畫面整理出以下 3 項需要調整的部分:

  • 鍵盤排版:明顯與設計稿不相符。
  • 記帳歷史:要放在鍵盤之上,數字金額之下。
  • 其他優化:調整其他樣式,跟設計稿一致。

尤其是第一點想要最優先處理,因為實在有點醜,甚至因為這樣的版面影響了使用者操作的流暢度,操作起來不甚是順手,因此不得不把這個調整排在第一順位。

而第二和第三則是差不多等級,都是跟畫面有關的調整,雖然看起來有點不美觀,但還算暫時勉強可接收。

指令要具體清晰

指令具體以外,再附上圖片讓 AI 「好好看詳細」!

第一次指令是這樣的,除了再次附上設計稿以外,想說整個鍵盤的排版怪怪的,直接跟 AI 說調整排版,這樣應該夠清楚了吧?

這是我的設計稿,
請幫我依照設計稿,
調整 Keypad 這個組件的排版

AI 給出了以下結果,只有把這個按鍵的資料陣列的程式碼「調整排版」…,哎? 嗯?

搞毛啊,這樣根本只是調整「程式碼」的排版!

//...
const buttons = [
    "7", "8", "9", "AC",
    "4", "5", "6", "⌫",
    "1", "2", "3", "OK",
    ".", "0", "+", ""
];

根本不行,完全沒有改到樣式呀!

記取了教訓,再問第二次。這次給的指令一定要更明確一點,因為問題主要是出在 OK 按鈕,這個樣式比較特別的按鈕。

思索了一下,我給了 AI 以下指令

不對喔,OK 按鈕是直的,請幫我修正

這次 AI 生成的東西…有些不一樣喔,初步看了一下,好像有搞頭 🤔。

<button
    className="p-4 text-xl font-bold rounded bg-blue-500 text-white col-span-1"
    onClick={onOk}
>
    OK
</button>

而且 AI 還給了我這樣的「說明」,信心頓時大增!

說明
1. OK 按鈕:將 OK 按鈕獨立出來,並設置為單列,這樣它就會顯示為直的。

事不宜遲,把 AI 產給我的程式碼套用到檔案中。

https://ithelp.ithome.com.tw/upload/images/20240922/20168308rtIE0M2TWp.jpg

AI 產的程式碼,套用進去變成這樣…,為毛 OK 按鈕多一個呀!!!

回頭仔細看一下產出的程式碼,原來 AI 忘記把 buttons 裡面的 OK 也拿掉,難怪會多一個出來。

問了再問

雖然耐心快被磨平,但秉持著永不放棄的精神,相信現在的 LLM 很強大的,再多試幾次看看!

第三次,再次改良一下問法,既然知道 UI 上的問題出在哪了,精準一點問個。

還差一點,OK 按鈕是在數字 3 這個按鈕的右邊,請幫我修正!

這樣問有沒有好一點,AI 會不會懂 UI 中「右邊」的概念?

試試看再說吧!

等了一下… AI 給了回覆,以下是程式碼的重點節錄。

 //...
 <button
    className="... row-span-2 col-start-4 row-start-3"
    onClick={onOk}
>
    OK
</button>

還附了以下說明:

**OK 按鈕位置**:使用 col-start-4 row-start-3 類來將 OK 按鈕定位在第 4 列(數字 3 的右邊)和第 3 行開始。

- **OK 按鈕大小**:保持 row-span-2 使其橫跨兩行。
- **按鈕排列**:主按鈕數組保持不變,OK 按鈕單獨放置。

這時候已經開始自我懷疑了,幹嘛花這麼多功夫叫 AI 幫忙改。但秉持著實驗精神,一樣把程式碼貼進去,看一下畫面。

https://ithelp.ithome.com.tw/upload/images/20240922/20168308NguaWaYdNw.jpg

哇喔!終…終於調整好了!!!(撒花)

雖然按鈕寬度、圓角之類的細節,都長得跟設計稿不太一樣,但基本的排版已經調整好,這已經很棒了,至少「大致上」這部分長得跟設計稿的排版很接近。

結語

這次就先跟 AI 玩到這邊為止,體驗了如何透過與 AI 一問一答的方式,「逼出」真正 AI 看得懂的指令。不只 AI 在學習,我們也在學習怎麼問才準確。

回顧一下這次提供的指令,發現前幾次講得都「不夠精準」,沒有先鎖定在「鍵盤排版這個大問題」,而讓 AI 輸入的指令過於發散,也就沒有命中我們想解決的問題了。

學到了教訓,「自以為」讓 AI 照著設計稿就足夠清晰具體,看來是遠遠不夠。

而應該要做的,是先指定什麼地方,接下來說是什麼東西,AI 才能精準找到脈絡所在之處,以生成最合適的程式碼。以最後一次的指令為例,就是講說「OK 按鈕應該要在 3 按鈕右邊」,是比較具體地提到「OK 按鈕」,且點出問題點在於「位置不對」。

如此一來,折騰一番之後生成的結果,終於才令人滿意。

REF


上一篇
Day11 — 初試啼聲 | 既然沒法一步到位,怎麼做? 先做好心態調整吧
下一篇
Day13 — 馬不停蹄 | 還有 bug 要修呢! AI 做得到嗎?
系列文
與 AI 一起開發 Side Project 吧!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言