Zapytałem ChatGPT, aby napisał wtyczkę WordPress, której potrzebowałem. Zrobił to w mniej niż 5 minut.

zdjęcie-gettyimages-1246766124.jpg

Nie chcąc zbytnio się rozwodzić nad tym, ale jestem bardziej niż trochę przerażony. W ramach eksperymentu, poprosiłem ChatGPT, aby napisał wtyczkę, która mogłaby zaoszczędzić mojej żonie trochę czasu przy zarządzaniu jej stroną internetową. Napisałem krótki opis, a ChatGPT stworzył całość: interfejs użytkownika, logikę i wszystko inne.

W ciągu pięciu minut.

Również: Najlepsze chatboty AI: ChatGPT i inne interesujące alternatywy do wypróbowania

Są pewne konsekwencje. O tym dowiesz się za kilka minut. Najpierw pozwól, że opowiem ci o doświadczeniu i tym, co się wydarzyło.

Potrzeba

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

Moją żoną jest właścicielka strony e-commerce opartej na WordPressie, skupionej na popularnym hobby. Ona również prowadzi bardzo aktywną grupę na Facebooku dla klientów swojej strony. Co miesiąc losuje listę imion, a następnie korzysta z wirtualnej animacji obracającego się koła, używając tej zrandomizowanej listy, dla grupy na Facebooku. Do tej pory korzystała ze strony internetowej, która całkiem nieźle losuje linie, ale pobiera za dużo za eksportowanie listy.

Również: Czy detektory sztucznej inteligencji mogą nas ocalić przed ChatGPT? Wypróbowałem 3 narzędzia online, aby to sprawdzić

Jak obserwowałem jej trudności z odzyskaniem wylosowanych nazw, pomyślałem, że mogłoby być pomocne, gdybym napisał szybką wtyczkę WordPress, którą moglibyśmy zainstalować na jej stronie. Jest często w panelu sterowania, więc posiadanie tego narzędzia byłoby pomocne.

Ale nawet prosty plugin zajmie mi kilka dni, z uwzględnieniem elementów interfejsu użytkownika i kodu logicznego, a ja jestem obecnie bardzo zajęty/projekty mi się zapełniają.

A potem pomyślałem o ChatGPT. W mediach toczyła się dyskusja na temat ChatGPT jako narzędzia programistycznego, więc postanowiłem spróbować.

Podpowiedź

Kluczem do uzyskania odpowiedzi od ChatGPT jest precyzyjnie napisane polecenie. W przypadku programowania, możemy to porównać do bycia menadżerem lub klientem. Musisz jasno opisać, czego potrzebujesz, aby uzyskać to, czego chcesz. Zacząłem od bardzo podstawowego polecenia, żeby sprawdzić, czy działa. Oto polecenie, którego użyłem:

kod.jpg

Napisz wtyczkę WordPressa kompatybilną z PHP 8, która udostępnia pole wprowadzania tekstu, w które można wkleić listę linii oraz przycisk, który po naciśnięciu losuje linie z listy i przedstawia wyniki w drugim polu wprowadzania tekstu.

W ciągu jednej minuty wygenerowany został kod, który widzisz po prawej stronie. Skopiowałem wygenerowany kod do pliku .php, umieściłem go w folderze o takiej samej nazwie jak plik .php, skompresowałem go i przesłałem na jej serwer. To zadziałało.

Również: Rosyjscy hakerzy próbują włamać się do ChatGPT, informuje Check Point

Kiedy pokazałem to mojej żonie, była odpowiednio pod wrażeniem i zaskoczona. Ale potem zaczęła działając swoje myśli i poprosiła o nową funkcję: upewnij się, że powtarzające się nazwy nie są obok siebie.

W przypadku jej wniosku, czasami będzie musiała wielokrotnie umieszczać czyjeś imię na liście. Jednak nie chciała, aby te duplikaty gromadziły się razem.

Zmodyfikowałem moje pierwotne pytanie, dodając następujące dodatkowe warunki:

...upewnia się, że żadne dwa identyczne wpisy nie są obok siebie (chyba że nie ma innego wyboru)... przy złożeniu tylu linii, co ilość linii w wyniku.

Dołączyłem frazę "chyba że nie ma innej możliwości" i wymaganie identycznego liczenia, ponieważ chciałem upewnić się, że wszystkie nazwy zostaną uwzględnione, a martwiłem się, że priorytetem będzie zapewnienie, aby żadne dwie nazwy nie były obok siebie, a nie zachowanie wszystkich nazw.

Około 30 sekund później miałem nową wtyczkę. Przesłałem ją na serwer i przetestowałem. Działała, ale wynik zawierał kilka pustych linii. Dlatego dodałem ten warunek do mojego poprzedniego polecenia:

...bez pustych linii...

Do tej pory przyzwyczaiłem się do czasu oczekiwania, który zawsze był mniejszy niż minuta. Kolejne wczytanie i test, i ponownie działało.

Również: Jak korzystać z ChatGPT

Chciałem jeszcze jeden ostatni element, który potwierdziłby ile linii zostało przetworzonych. Chciałem, aby wtyczka pokazywała liczbę linii dla pól wprowadzania i wyjścia. Oto dodatkowy komunikat:

...Pod pierwszym polem wyświetl tekst "Linia do losowania: " wraz z liczbą niepustych linii w polu źródłowym. Pod drugim polem wyświetl tekst "Linie, które zostały zrandomizowane: " wraz z liczbą niepustych linii w polu docelowym.

To działało, w większości przypadków. Przed uruchomieniem, pole wynikowe wyświetla jedną linię. Ale po zakończeniu procesu losowania, wyświetla dokładną liczbę linii w obu polach.

Jakość kodu

Ogólnie jakość kodu była czysta. Przedstawiam tylko oryginalną odpowiedź, bo inaczej nie zmieściłaby się w artykule. Program poprawnie wygenerował blok nagłówka WordPress i napisał interfejs użytkownika panelu sterowania dla wtyczki, oraz logikę przetwarzania wtyczki.

Umieściłam moje linie podsumowania powyżej pól, pomimo tego, że zaznaczyłam, żeby były poniżej, ale to nie jest wielka skarga. To jest ten sam rodzaj błędu, jaki klient może otrzymać od kontrahenta i wymagać nieco poprawek, aby go naprawić.

Również: Czy Notion AI, pomocnik do pisania, może napisać ten artykuł?

Kodowanie działało, ale nie uwzględniało wszystkich najlepszych praktyk programowania WordPressa. Na przykład nie zastosowano oczyszczania danych wprowadzanych przez użytkownika. Społeczność WordPressa jest rygorystyczna w kwestii czyszczenia danych wejściowych, aby hakerzy nie mogli wypełnić pól danymi, które mogą uszkodzić witrynę - a ten kod nie zawierał żadnych takich zabezpieczeń.

Jako późniejszy test, zleciłem Twierdzy sztucznej inteligencji oczyszczenie danych wejściowych i to zrobiła... do pewnego stopnia. Wyczyściła dane wejściowe wewnątrz funkcji PHP, ale nie wyczyściła ich podczas wywoływania PHP wewnątrz HTML. To zdecydowanie pozostawiło lukę dla hakerów.

Spadło również do ustawień pozycję w menu wtyczki. Prawdopodobnie umieściłbym ją w menu Narzędzia lub stworzył osobną pozycję dla tej funkcji. Ponieważ nie określiłem, z której opcji należy ją uruchomić, uważam, że ChatGPT podjął sensowną decyzję, umieszczając pozycję w menu tam, gdzie się znajduje.

Dodałem jedno ostatnie wymaganie do mojego polecenia, prosząc AI, aby nadało wtyczce nazwę:

Napisz wtyczkę dla WordPressa kompatybilną z PHP 8 o nazwie "Robo Randomizer", która...

Dziwnie to, że AI dało mi zupełnie inny wtyczkę, generując wtyczkę, która zapewnia skróty zamiast interfejsu panelu sterowania. Wyjaśnię to osobom, które nie są użytkownikami WordPressa, ponieważ jest to interesujące.

Kiedy piszesz coś takiego, możesz udostępnić to na stronie internetowej odwiedzającym (nazywanym frontendem) lub tym, którzy logują się do panelu sterowania witryny w celu utrzymania strony (tylnego frontendu). W moim oryginalnym zestawie pytań nie określiłem czy dotyczy frontendu czy backendu, ale sztuczna inteligencja napisała to, czego chciałem, czyli interfejs dashboarda backendowego dla narzędzia.

Także: OpenAI zatrudnia programistów do udoskonalenia ChatGPT w dziedzinie programowania

Ale tym razem zdecydował się napisać wtyczkę jako narzędzie frontendowe, które wykonuje się za pomocą skrótu. W WordPressie można osadzić skrót (coś w rodzaju [losowe wiersze]) w post i wykonuje się kod w wtyczce. Ostatnia wersja, którą wygenerował AI, dała mi taki skrót, który umożliwiłby prezentowanie funkcji losowych wierszy odwiedzającym witrynę.

Po tym ChatGPT trochę stracił wątek. Nie udało mi się dodać dodatkowych funkcji do oryginalnego wtyczki, a ChatGPT głównie powtarzał generowanie wersji skróconej kodu. Wyraźnie utrzymanie kodu nie jest mocną stroną ChatGPT.

Konsekwencje

Oczywiście, to jest prosty wtyczka. Jest ona mniej więcej wielkości zadań, które przypisałem moim studentom pierwszego roku programowania, kiedy uczyłem na Uniwersytecie Kalifornijskim w Berkeley. Nie zbliża się ona do złożoności znacznie większych, darmowych wtyczek WordPress, które utrzymuję dla ponad 50 000 użytkowników.

Również: Czy z AI chatbotami szukamy odpowiedzi we wszystkich złych miejscach?

W zeszłym tygodniu, kiedy po raz pierwszy użyłem ChatGPT do stworzenia wtyczki Quickie dla mojej żony i napisałem o tym na Twitterze, moi znajomi w sieci mieli pewne obiekcje. Oto niektóre z ich obaw:

To jest złe? Jedna osoba była zaniepokojona, że SI osadzi złośliwe (lub przynajmniej promocyjne) informacje wtyczce, a użytkownik, który nie jest programistą, nigdy by o tym nie wiedział. Ale faktem jest, że jeśli nie jesteś programistą i nie potrafisz czytać kodu, nawet jeśli podpiszesz umowę z inną osobą, naprawdę nie wiesz, co tam się znajduje. Wszystko sprowadza się do zaufania reputacji lub poproszenia osoby, która jej ufasz, o przejrzenie kodu. W przypadku kodu wyprodukowanego w moim eksperymencie, był on czysty.

Czy to jest to, co może być najlepsze? Tutaj znów ludzie trzymali kod AI na wyższym poziomie niż nawet ludzcy programiści. Jestem dobry w programowaniu, ale mój kod ma błędy. To nie jest to, co może być najlepsze... przynajmniej na początku. Jednak z ludźmi kod staje się coraz lepszy z czasem. Nie jestem pewien, czy AI może wziąć istniejący kod, poprawić go, naprawić bugi i poprawić go. Jednak czasami rzeczy po prostu muszą być funkcjonalne. Czasami nie ma znaczenia, czy są najlepsze z najlepszych. Dobre wystarcza często wystarcza. I wygenerowany kod był wystarczająco dobry.

Czy to zmniejszy liczbę pracy dla programistów? Prawdopodobnie tak. Nie lubię widzieć, że maszyna zabiera pracę człowiekowi (szczególnie jeśli chodzi o pracę, którą mógłbym wykonywać). Sztuczna inteligencja zdecydowanie jest opcją dla szybkich i prostych projektów, zarówno w pisaniu, jak i programowaniu. Pensje ludzi na pewno będą miały na to wpływ.

Od dziesięcioleci studiuję sztuczną inteligencję. Napisałem pracę magisterską z AI. Ale nawet mając takie doświadczenie, nagły wzrost wysokiej jakości AI generatywnej był dla mnie szokujący. Powiedziano to, to czego teraz doświadczamy, to poziom "wystarczający" produktywności. Niestety, takiego poziomu oczekują wielu klientów.

Ale - przynajmniej na razie - ChatGPT i jego znajomi nie potrafią pisać dogłębnych artykułów analizujących takie jak ten, ponieważ odzwierciedlają one opinie, anegdoty i lata doświadczenia. I choć prawdopodobnie mogą pisać podprogramy i funkcje dla większych projektów programistycznych, nie są w stanie tworzyć głównych projektów programistycznych.

Także: Demo konkurencyjnego narzędzia firmy Google - ChatGPT - zawodzi

Na przykład, przez ostatni rok musiałem odbyć 20-30 spotkań z głównym dostawcą interfejsu API, aby zintegrować ich usługę z moją. Większość tych spotkań łączyła kwestie biznesowe z wymaganiami technicznymi i polityką licencjonowania. Wyzwałbym jakikolwiek sztuczna inteligencja, aby znaleźć się w takiej biurokratycznej sytuacji, zrozumieć niuanse i spełnić wymagania partnera, a następnie stworzyć moduły kodu, z którymi wszyscy się zgodzą.

Więc tak, trochę mnie przeraża, jak dobry był ten plugin, który "stworzyłem" dla mojej żony. Ale sztuczna inteligencja ma jeszcze długą drogę do pokonania, zanim zacznie odbierać pracę doświadczonym developerom i pisarzom - pod warunkiem, że klienci chcą takiej pracy, jaką dostarczają doświadczeni developerzy i pisarze. A to, moi przyjaciele, jest coś, o czym martwię się.

Powiązane artykuły

Więcej informacji >>

Odblokuj moc AI dzięki HIX.AI!