我請ChatGPT寫了我需要的WordPress外掛程式,在不到5分鐘內完成了它

gettyimages-1246766124.jpg

不是要小题大做,但我有些害怕。作为一个实验,我要求ChatGPT写一个插件,以便为我的妻子节省时间来管理她的网站。我写了一个简短的描述,ChatGPT就写出了所有的东西:用户界面、逻辑等等。

少於五分鐘。

還有:最佳人工智能聊天機器人:ChatGPT和其他有趣的替代選擇

有一些影響,我們稍後會討論。首先,讓我帶你體驗一下當時的情況和發生了什麼。

需求

line-randomizer-paypal-demo-wordpress-2023-01-31-23-41-28.jpg

我的妻子是一個以WordPress為基礎的電子商務網站的所有人,專注於一個流行的愛好。她還主持了一個非常活躍的Facebook群組,供她網站的客戶使用。每個月,她會對名稱列表進行隨機排序,然後使用這個隨機排序的列表進行虛擬旋轉輪動畫,為Facebook群組進行活動。她一直在使用一個在網絡上的網站來對行進行公平的隨機排序,但匯出列表的費用有點貴,不值得。

同樣的也有考慮: AI偵測器能救我們免於ChatGPT?我試了3個線上工具來找出答案

當我看著她努力地將隨機化的名字找回來時,我想如果我寫一個快速的WordPress插件,讓我們可以安裝在她的網站上,可能會有所幫助。她每天都在使用儀表板,所以擁有這樣一個工具會很方便。

但即使是一個簡單的插件,對我來說也需要幾天的時間來撰寫,因為它需要包括使用者介面元素和邏輯程式碼,而我在最近已經有很多專案要處理。

然後我想到了ChatGPT。媒體上有一些關於ChatGPT作為一種程式設計工具的討論,所以我決定試試看。

提示

讓ChatGPT能夠生成任何內容的關鍵是一個精心撰寫的提示。對於編程來說,可以將其視為經理或客戶。你必須清楚地描述你需要什麼,以便得到你想要的結果。我一開始使用了一個非常基本的提示,只是為了看看它是否有效。以下是我使用的提示:

程式碼.jpg

撰寫一個相容於 PHP 8 的 WordPress 外掛程式,提供一個文字輸入欄位,可以將一組行列貼入其中,並提供一個按鈕,當按下按鈕時,將列表中的行列隨機排列,並在第二個文字輸入欄位中呈現結果。

不到一分鐘的時間,它生成了你在右側看到的代碼。我將生成的代碼複製到一個 .php 文件中,將其放入與 .php 文件同名的文件夾中,壓縮它,並且上傳到她的伺服器。它運作正常。

同時:Check Point 表示俄羅斯駭客正試圖破解 ChatGPT。

當我把它展示給我妻子時,她感到相當驚訝和印象深刻。但隨後思路開始轉變,她要求增加一個新功能:確保重複的名字不會連續出現。

對於她的應用程式,她有時需要將某人的名字重複多次列在列表中。但她不希望這些重複的名字聚集在一起。

我修改了我的原始提示,新增了以下附加條件:

...確保相同的項目不會相鄰(除非沒有其他選擇)...提交的行數與結果中的行數相等。

我在這個短語裡加入了「除非沒有其他選擇」和相同數量的要求,是因為我希望確保所有的名字都被包括在內,我擔心它會優先考慮名字不能相鄰的需求,而不是保留全部的名字。

大約30秒後,我有了一個新的外掛程式。我將它上傳到伺服器並試用了一下。它能運作,但輸出的結果包含了一些空行。所以我在我的前一個提示中新增了這個條件:

…沒有空白行…

到目前為止,我已經習慣了非常快的處理時間,總是少於一分鐘。再上傳一次並進行測試,結果又成功了。

還有: 如何使用 ChatGPT

我希望再增加一個功能,以確認有多少行被處理過。我希望這個插件可以在輸入和輸出欄位中顯示行數。下面是這個提示的補充:

在第一個欄位下方,顯示文字「要隨機排序的行: 」並顯示源欄位中非空行的數量。在第二個欄位下方,顯示文字「已隨機排序的行: 」並顯示目標欄位中非空行的數量。

這個方法大致上有效。在執行之前,輸出欄位顯示一行。但一旦隨機化過程完成後,兩個欄位都會顯示正確的行數。

程式碼品質

整體而言,程式碼品質很乾淨。我只呈現原始回應,因為其他內容不適合放在文章中。這個程式可以正確生成 WordPress 的標頭區塊,並為插件撰寫了儀表板使用者界面,以及插件的處理邏輯。

儘管我指定要在下方,但它卻將我的摘要行放在欄位上方,不過這並不是什麼大問題。這是客戶可能從人工承包商那裡得到的同樣類型的錯誤,然後需要進行一些修正。

同時: Notion AI寫作助手能否寫這篇文章?

編碼是有效的,但它沒有使用所有 WordPress 編程的最佳實踐。例如,它沒有對用戶輸入進行過濾處理。WordPress 社區非常重視對輸入進行過濾處理,以防止黑客將數據塞入字段中導致網站受損 - 但這段程式碼中沒有任何過濾處理。

作為後續測試,我指示Ai對輸入進行了防護,並且確實有效...至少在PHP函數內部對輸入進行了防護,但是在HTML中調用PHP時並未對輸入進行防護。這肯定會給駭客留下一個漏洞。

它也將插件的選單項目放置在設定中。我可能會將它放在工具下方,或是給予此功能獨立的選單項目。由於我沒有指定它應該從哪裡啟動,我認為ChatGPT在放置選單項目的位置上做出了一個可以接受的決定。

我對我的提示添加了最後一個要求,要求AI給插件取個名字:

寫一個相容於 PHP 8 的 WordPress 插件,名為「Robo Randomizer」,其功能為...

奇怪的是,AI給了我一個完全不同的插件,生成了一個提供短代碼而不是儀表板界面的插件。讓我向非WordPress用戶解釋一下,因為這很有趣。

當撰寫像這樣的內容時,您可以將其提供給訪問網站的訪客(即前端)或登錄網站的用戶來維護後台(即後端)。在我最初的提示集中,我並未具體指定前端或後端,但AI根據我的要求寫了我想要的,也就是用於工具的後台管理介面。

另外:OpenAI正在招聘開發者,以使ChatGPT在編程方面更加出色

但這一次,它決定將插件編寫為前端工具,通過短碼執行。在WordPress中,您可以在文章中嵌入短碼(類似於[randomize lines]),它會運行插件中的代碼。AI生成的最新版本給了我這樣一個短碼,這將使得隨機排列行功能能夠呈現給網站訪問者。

在這之後,ChatGPT有些失去了方向。我無法為原始的插件添加附加功能,而ChatGPT大多只是重複生成簡碼版本。顯然,代碼維護不是ChatGPT的核心優勢。

影響

顯然,這只是一個簡單的插件。它大致上和當我在加州大學伯克利分校教授一年級的程式設計學生時,給予他們的作業大小相仿。它還遠遠不及我維護的給超過 50,000 用戶的大型開源 WordPress 插件的複雜性。

同時:利用AI聊天機器人,我們是否在尋找錯誤答案的地方?

上週,當我第一次使用ChatGPT為我妻子建立一個快速插件並在推特上發文時,我的社交媒體上的對話夥伴們反對了這個想法。以下是他們的一些疑慮:

它是邪惡的嗎?有一個人擔心 AI 會在插件中嵌入惡意(或至少是宣傳)資訊,而非程式設計師的使用者將永遠不會知道。但事實是,如果你不是一位程式設計師並且無法閱讀代碼,即使你與另一個人簽訂合約,你實際上也不知道內部包含什麼。一切歸結於信任聲譽,或者讓你信任的人仔細檢查代碼。在我的實驗中生成的代碼是乾淨的。

它是否已經達到最好的狀態了呢? 在這裡,人們對 AI 的程式碼提出了比對人類程式碼更高的要求。我是一個優秀的程式設計師,但我的程式碼中還是有漏洞。一開始時,它並不是最好的... 但是對於人類來說,程式碼隨著時間的推移會變得更好。我不確定 AI 是否能夠拿現有的程式碼進行改進、除錯和增強。然而,有時候事情只需要達到功能性。它們不一定要是最好的。足夠好通常就足夠了。而它生成的程式碼是足夠好的。

減少人工編程工作的數量嗎?幾乎可以肯定。我不喜歡看到機器奪走任何人的工作(特別是那些我可能想要做的工作)。AI絕對是快速和簡單項目的選擇,無論是寫作還是編程。毫無疑問,人們的薪水會受到影響。

我已經研究人工智慧數十年了。我畢業論文就是關於人工智慧的。但即使有這樣的背景,現在這種高品質生成式人工智慧的激增對我來說還是驚人的。話雖如此,我們現在所面對的是「夠好」的生產力水準。可惜的是,這正是許多客戶所需求的。

但是--至少目前為止--ChatGPT及其朋友們無法像這樣撰寫深入的分析文章,因為它們反映了觀點、軼事和多年的經驗。雖然它們可能能夠為大型編碼項目編寫子程序和函數,但它們只能寫大型編碼項目。

此外:Google 的 ChatGPT 競爭對手演示出錯

舉個例子,我在過去一年裡不得不與一家重要的API供應商進行了20-30次會議,以將他們的服務整合到我的項目中。其中大部分的會議混合了業務問題、技術要求和授權政策。我挑戰任何人工智能能忍受、理解並滿足這種官僚狀況,然後能夠產生所有人都能夠同意的程式模塊。

所以,是的,我有点被我为我的妻子“制作”的插件所惊艳到了。但是在人们还希望获得有经验的开发人员和写作者所做的工作的时候,人工智能还有很长的路要走,才能夺走他们的工作。而这一点,我的朋友们,是我所担心的。

相關文章

查看更多 >>

透過 HIX.AI 釋放 AI 的力量!