GPT-4 是個威力無比強大的 AI,但是絕大多數人根本沒能讓它得到充分發揮。把 ChatGPT 當作一個聊天機器人隨便玩玩,既對不起你自己的時間和金錢,也對不起 GPT。

GPT 不是一個聊天工具,而是一個生成式 AI。「生成式」的意思是它會創造內容,但它能發揮到什麼程度,不是取決於它,而是取決於你。

專案目標:成語連線遊戲#

作者選擇用 Python 製作一個成語連線遊戲。他已經很久沒用 Python 寫過程序了,這次乾脆假裝一點都不會,從零基礎開始。真正的程序員不是他,而是 ChatGPT 界面下的 GPT-4 模型。

開發過程#

  1. 驗證能力:先讓 GPT 隨機列舉 10 個成語並提供解釋——它做得很好
  2. 提需求:「寫一個 Python 程序,把這些成語和它們的解釋分開,分別列表,打亂順序,在一張 A4 紙上分兩列列出,形成一個連線題」
  3. 遇到錯誤就反饋
    • 字體錯誤(GPT 用的是英文字體,無法顯示中文)——告訴它,它立即改正
    • 需要另外掛載中文字體庫——它自己意識到問題並重寫了完整的程序
    • 字體路徑需要修改——改完程序就運行成功了
  4. 提升需求:希望每次運行都生成一套新題,必須調用 OpenAI 的 API
  5. API 整合:GPT-4 教作者如何使用 API,寫出完整程序
  6. 反覆除錯
    • API 端點錯誤——GPT 立即修改
    • 格式解析問題——GPT 用了「冒號」區分成語和解釋
    • GPT-3.5 輸出不規則——GPT 先是創造性地搜索,最後直接修改提示語讓 GPT-3.5 按標準格式輸出

整個過程的觀察#

  • 作者全程只有兩次主動對程序做了調整
  • 主要工作是嚴格按照 ChatGPT 的要求修改程序、運行程序,並且把報錯信息反饋給它
  • 這就是「自然語言編程」——像用 Python 調取 API、生成表格這些功能,作者根本不知道具體的編程語句是什麼

GPT-4 的編程特質#

  • 沒有低級錯誤:程序裡的錯誤要麼跟具體運行環境有關,要麼跟 GPT-3.5 API 回傳結果有關
  • 理解報錯信息:每一個報錯信息,它都正確理解了,並且直達本質給出解決方案
  • 主動性和創造性:它主動讓作者在程序中添加打印語句來幫助調試,面對不規則輸出時創造性地想辦法

GPT 不會取代人類程序員的工作,至少目前不會。但 GPT 會大大提高程序員的編程效率。更重要的是,它讓平時不編程的人也可以編程了。

GPT 編程的意義#

  • GPT 不但讓編程更容易,而且讓編程更值得了,因為現在可以在程序裡調用 AI
  • GPT-4 發布後的短短幾天裡,X 上就有好多人曬出了自己使用 GPT-4 編程的項目——處理文檔和語音的小程序、瀏覽器插件、手機 App、桌面電子遊戲
  • 這些很多都是平時不編程的人做出來的

GPT 最大的貢獻是在於,它讓平時不編程的人可以編程了。世間有無數的人有想法而沒時間,現在有了 GPT,這些人都可以立即開展自己的「秘密項目」。GPT 是在給人賦能,它解放了我們。