iT邦幫忙

11

ChatGPT會取代程式設計師嗎 (一) ? 5分鐘完成網頁開發

  • 分享至 

  • xImage
  •  

前言

ChatGPT一炮而紅後,有人說它會取代很多行業的工作機會,例如記者、作家、藝術家、教師、程式設計師等,也有人說它會威脅Google搜索引擎的地位,另外也會使教育大翻轉,它會幫忙寫作業、報告、論文,甚至寫程式。以下我們就來玩一下,並討論『ChatGPT會取代程式設計師嗎?』。

開通

已經太多人介紹註冊程序了,筆者就不浪費篇幅,請參考『ChatGPT 人工智慧聊天機器人註冊教學,能以中文對答如流』,註冊成功後就可以瀏覽ChatGPT首頁,在下列畫面的下方輸入問題,ChatGPT稱為『提示』(Prompt)。
https://ithelp.ithome.com.tw/upload/images/20230303/20001976QocTBdprvE.png

測試

依照下列操作程序,依序輸入問題,我們要在5分鐘完成網頁開發,包括伺服器端(Server)程式及用戶端的HTML/Javascript。

Q1. 如何在 Javascript 中發出 HTTP 請求? (How do I make an HTTP request in Javascript?)

  • 可使用中文或英文發問,回覆的程式碼相同,但說明各是中文及英文。
  • ChatGPT回覆的程式碼如下:
    https://ithelp.ithome.com.tw/upload/images/20230303/20001976H2zWuvaZu8.png
  • 可按右上角『Copy code』,複製內容。
  • 通常綠色的字體表示可以客製化的程式碼。修改第一行網址為http://localhost:5000/data。

Q2. 上述程式碼要放在哪個目錄?(which folder to put data.html in?)
https://ithelp.ithome.com.tw/upload/images/20230303/20001976XcVdcbdhhT.png

  • 將上述程式碼存檔為data.html,放在templates目錄。

Q3. 產生可以回傳Json的Flask伺服器端程式碼 (generate web code to return json with python Flask)
https://ithelp.ithome.com.tw/upload/images/20230303/20001976vgDdoFwvHL.png

  • 將上述程式碼存檔為app.py,放在根目錄。
  • 再加入以下程式碼至app.py,作為網站入口(Home page)。
@app.route('/')
def index():
    return render_template('data.html')

測試

可在這裡下載範例,解壓縮後,在app.py所在目錄下開啟終端機,Windows作業系統使用者可在檔案總管的路徑列輸入cmd。

  • 執行python app.py。
  • 開啟瀏覽器,輸入http://localhost:5000/ ,出現空白畫面,按F12,點選『主控台』頁籤,點開『Object』,可看到回傳的Json內容。
    https://ithelp.ithome.com.tw/upload/images/20230303/20001976kTDq9PRhgQ.png

只問3個問題,就搞定一個網頁,再加強一下,把Json內容顯示在網頁上。

加強顯示

Q4. 產生HTML網頁顯示Json內容 (generate html to display json with python Flask)
https://ithelp.ithome.com.tw/upload/images/20230303/20001976pcMgVP9NfX.png

  • 將上述程式碼存檔為data2.html,放在templates目錄。
  • 為避免覆蓋原有程式碼,在app.py中新增一段函數如下。
@app.route('/data2')
def index2():
    data = {
        'name': 'John',
        'age': 30,
        'city': 'New York'
    }
    return render_template('data2.html', data=data)
  • 重新執行python app.py。
  • 開啟瀏覽器,輸入http://localhost:5000/data2 ,出現畫面如下。
    https://ithelp.ithome.com.tw/upload/images/20230303/20001976RrAfcEt1k0.png

一個完整的網頁程式就大功告成了,當然,可以繼續問下去,例如美化網頁,加上身份認證…等。

結語

ChatGPT的亮點,它可以產生程式碼,也可以debug,但是我們還是要懂網頁套件的框架(Framework)、MVC架構、身分驗證/權限控管(Authentication/Authorization)、HTML/Javascript/CSS,如何針對產業別/公司規則修改商業邏輯,都是先備知識,另外,ChatGPT也可以幫我們寫一些小程式,例如播放音樂、人臉辨識、計算機…等,或是我們不懂得的領域,可由ChatGPT帶領我們學習,尤其是初入門的程式設計師。

ChatGPT在程式偵錯(debug)、重構(Refactoring)、單元測試(Unit Test)都有很棒的表現,開發團隊可以思考一下,如何借助ChatGPT提升生產力。

完整範例可在這裡下載。

Happy coding !! 下次見。

工商廣告:)

ChatGPT企業實踐指南 | 技術透析與整合應用影音課程,2023/5/20直播課程。
ChatGPT企業實踐指南 | 技術透析與整合應用
ChatGPT 完整解析:API 實測與企業應用實戰書籍,2023/5/20上市。
ChatGPT 完整解析:API 實測與企業應用實戰
深度學習PyTorch入門到實戰應用影音課程。

其他書籍:
Scikit-learn 詳解與企業應用
開發者傳授 PyTorch 秘笈
深度學習 -- 最佳入門邁向 AI 專題實戰


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
5
wiseguy
iT邦超人 1 級 ‧ 2023-03-05 18:17:52

呃!似乎沒看到結論有討論『ChatGPT會取代程式設計師嗎?』這個一開頭的命題。
不過通篇看下來,也算間接的暫時給了否定答案。
做為一個程式設計師,要學的東西很多。但身為人類,再怎麼天縱英才也沒有AI記得快、學得多。只是,AI再怎麼記得快、學得多,它終究

  1. 無法無中生有。我說的是比如創造一個語言,而不是把現成中文組成一篇文章。
  2. 不具有人類邏輯。什麼是正義思辨,什麼是不外乎情理法,它完全不懂。
  3. 沒有人類世界觀。問它英國什麼時候從美國獨立?它開始瞎掰。
    所以或許它可以幫程式設計師省掉大多數「打字」的時間,但程式設計師還是得「指揮」它:需求細節、前後邏輯、界面佈置,更不要說還得幫它看看程式能不能跑、或者它根本是把求閏年的函數,拿來瞎掰是AES加密函數。
    AI要取代程式設計師是言之過早,而且對AI有多高信任度,跟決定是否被AI取代的比例,顯然會是正相關。

感謝 wiseguy 老大的補充,面對新科技,總是保持高度期望,畢竟筆者也不算是個咖,對於未來發展,不敢妄下定論,還是留白讓讀者各自判斷為佳。

wiseguy iT邦超人 1 級 ‧ 2023-03-06 14:06:03 檢舉

樓主客氣了,我也只是發表個人淺見,還請指教。

0
wilson1966
iT邦研究生 2 級 ‧ 2023-03-06 13:56:54

哈,5年級的設計師不用耽心,6,7 年級的要注意了。

4
wiseguy
iT邦超人 1 級 ‧ 2023-03-06 14:23:58

其實主要還是要提醒後進,AI 是個日新月異的技術。輔助程式開發,使用得當的話,可以事半功倍。但 ChatGPT 與 CoPilot 差別在哪?生成式的AI,程式開發輔助,有不同嗎?
它們明顯的不同點在於,生成式AI 當用在沒有確切答案的場景時的創作,會有令人驚艷的效果。比如要他寫一首詩,寫一篇小說,那麼結果多是令人讚賞。
但程式開發是科學,它通常有標準答案。AES 加密函數,RSA 非對稱金鑰,這個沒有模擬兩可的空間,就跟數學一樣,1+1=2,沒有第二種答案。所以如果 CoPilot 沒能回應準確的答案,那麼可用性就大打折扣了。你還得對它給予的答案花時間驗證正確與否。小片段程式或許還行,但大型片段那也等於把節省的打字時間,用來幫 CoPilot 除錯了。
目前還有另一支爭議的法律議題:把強授權 (GPL/LGPL) 的程式碼,抽出片段或整支程式來放到自己私有程式中,這算不算剽竊?CoPilot 在回答你的程式前,也會把你的程式碼上傳到雲端當作它的學習資料。這在企業顯然是嚴重違反資安的行為。算不算侵害公司著作權、智慧財產權?
AI,可以善用,但還不能依賴,也尚有爭議。不足以依賴,更遑論取代。

看更多先前的回應...收起先前的回應...

讚!!

可以取代三流工程師,但無法取代像樓主神人級的一流工程師!!!

AI GPT model 裡頭有Temperature 參數可以餵,可以做調整。若調低,就可以做到1+1=2. 但就會較無趣了~~沒有熱情了...

哈哈,謬讚了。
Temperature 確實是關鍵的參數,想要精確的答案,Temperature設為0,想要ChatGPT有創意,又要將Temperature設>0.8,人類真是難搞啊。假如要設計一個ChatBot,要如何設定Temperature,筆者目前還沒想通,Honggi老大,提供一個高見吧。

我要留言

立即登入留言