2023 軟體開發的熱門話題,通通都離不開 AI。我除了使用 AI (包含 ChatGPT, GitHub Copolot 等等工具之外),我也在思考我該做些什麼,讓 AI 能融入在我負責設計或開發的系統內,讓其他人也能感受到價值?
其實過去這一年我想了很多,但是一直都還很片段,不像過去我在聊架構跟底層設計時,能從頭到尾每個細節都能連貫起來那種充分掌握的感覺。
不過,特地在 2023 的最後一刻,我想貼一下這 PO 文,總結我在 2023 最後一個月的突破。一切都要感謝董大偉老師 ‧NET Walker 大內行者 在 .NET Conf 2023 的那場演講… 讓我想通了 AI + API 帶來的改變..
過去兩年,我都在推行抽象化思考 + API 設計的議題,今年開始談商業模型與 API 的設計,不過我常在想,API 做的 “很棒”,跟 API 做到 “可以動”,到底差別在哪裡?
董大偉老師那場演講,我想通了。AI (獎精確一點,大型語言模型,LLM) 的成熟,開始改變了一些服務或軟體設計的方向了。在過去,軟體的發展是不斷改善使用者介面,讓操作越來越容易。例如:
古早: 卡片,組合語言 DOS: 命令列,高階指令 WIN: 視窗介面,視覺化操作,所見及所得,多媒體 APP: 行動裝置,觸控,體感,環境感知 (座標,轉向,語音輸入..)
不過,這些改進,都是讓你操作的 “步驟” 越少越好,你還是要很清楚認知你在做甚麼,例如你還是要知道你在編輯一個 “檔案”,編輯好之後要送給 “客戶” 確認。使用者的操作,只是越來越簡單的指令,人們終究還是要理解你想做的 (意圖),跟你該做的操作 (指令) 之間的關聯。舉個例子來說,我就無法教我爸爸搞清楚他的意圖,應該先開啟檔案,編輯文件,再把文件透過 LINE 傳給他的朋友,這一連串的操作順序。
現在,有了 LLM 的支撐,我認為軟體真正能開始 “了解” 使用者的 “意圖”,溝通與操作開始跨越 “命令” -> 執行,變成 “意圖溝通” -> 確認操作 -> 執行了
因此,看到了現在當紅的兩大 AI 應用方式:
ChatGPT: 用自然語言 (文字、聲音) 或是圖像輸入操作 Copilot: 用既有的操作方式,AI 背後輔助猜測意圖,幫你完成下一步
語言模型的成熟,解決了過去 UX 最困難的 “猜測意圖” 這門檻。人跟系統開始可以用 “意圖” 來溝通了,你可以直接跟 ChatGPT 講你想要幹嘛,他能 “理解” 你的意圖,再去幫你找對的工具或是資訊。我覺得 2023,就是靠 “意圖” 溝通的轉折點,這會大幅改變以後的系統開發生態,尤其是跟各種 UX 改善直接相關的領域。
為了印證這些事,我特地自己花了點時間做了一個簡單的 POC, 我想體驗看看 LLM 對軟體開發的革命到底是什麼 (我指的不是你寫 code 能快十倍,而是你能寫出什麼以前根本辦不到的事情)。
我用我在 .NET Conf 2023 講的主題跟範例: 商業模型 (API),跟大型語言模型 (LLM, 我直接用 ChatGPT plus 的 My GPTs),我花了點時間,寫了 dummy API, 他是個真正能運作的電商系統 API, 能查商品,查訂單,加入購物車,結帳。這 API 是我所謂的 “商業模型” 代表。而我花了 30min, 創造了 GPTs: 安德魯小舖 採購顧問, 給他一些指引原則,跟 API 規格。我成功的讓這機器人,已經可以精準地幫我代替客人打 API 完成結帳了。
有興趣的朋友門,我把對談的內容貼在下方 (留言),這邊我寫一下我的感想:
我的 API 只提供了很精簡的操作,但是 GPT 開始可以 “猜” 的出背後的意圖了。例如:
-
我只有提供單價,加入購物車,跟試算結帳金額。我故意問 GPT 怎麼比較便宜,他開始可以回答我有折扣。
-
我沒有直接提供折扣資訊,只有結帳金額。我故意問他折扣內容,他還能幫我算出跟原價的價差。
-
變通的應用 GPT 都能應付,API 我只有 “加入” 購物車,但是她已經可以用加入負數商品來替我處理 “移出” 購物車..
背後有很多想法,越想越興奮,LLM 的成熟,真的讓這世界變成 API only 的世界了。未來世界就是語言模型主導操作介面 (如現在的 ChatGPT, 各種 Copilot 應用),跟各種服務的 API, 透過操作介面整合的世界。
API First 越來越值得投資了,2023 的最後一刻,各位也可以想一想十年後你要開發什麼? 你現在具備了足夠技能了嗎? 你做好準備了嗎?
我不知道未來會變成什麼樣子,但是我可以確定,API 只會越來越重要,好的商業模型跟軟體開發的對應也會越來越重要 (例如: DDD),上面提到的相關內容,我都會貼在留言區
最後,總算在 2023 最後一刻貼出這篇 PO 文,代表我在 2023 的心得收穫。也祝各位 2024 新年快樂 :D