Jak używać ChatGPT do pisania kodu

obraz1.pngJednym z bardziej intrygujących odkryć dotyczących ChatGPT jest to, że potrafi pisać całkiem niezły kod. Przetestowałem to w lutym, kiedy poprosiłem o napisanie wtyczki WordPress, której moja żona mogłaby użyć na swojej stronie internetowej. Wykonał dobrą robotę, ale był to bardzo prosty projekt.

Jak używać ChatGPT do pisania: Życiorysy| Formuły Excela | Eseje | Listy przewodnie

Jak możesz wykorzystać ChatGPT do pisania kodu w ramach codziennej praktyki kodowania? To właśnie zamierzamy tutaj zbadać.

Jakie rodzaje kodowania ChatGPT dobrze sobie radzi?

Istnieją dwa ważne fakty dotyczące ChatGPT i kodowania. Po pierwsze, może faktycznie pisać użyteczny kod. Po drugie, może się całkowicie zgubić, wpaść do króliczej nory, gonić własny ogon i produkować absolutnie bezużyteczne śmieci.

Przekonałem się o tym w bolesny sposób. Po ukończeniu wtyczki WordPress postanowiłem sprawdzić, jak daleko może zajść ChatGPT. Napisałem bardzo staranny monit dla aplikacji na Maca, w tym szczegółowe opisy elementów interfejsu użytkownika, interakcji, tego, co będzie dostępne w ustawieniach, jak będą działać i tak dalej. Następnie przekazałem go do ChatGPT.

ChatGPT odpowiedział zalewem tekstu i kodu. Potem zatrzymał się w połowie kodu. Kiedy poprosiłem go, aby kontynuował, zwymiotował jeszcze więcej kodu i tekstu. Poprosiłem o kontynuację po kontynuacji i wyrzucało coraz więcej kodu. Ale... nic z tego nie nadawało się do użytku . Nie identyfikował, gdzie powinien znajdować się kod, jak skonstruować projekt, a kiedy uważnie przyjrzałem się wytworzonemu kodowi, pominął główne operacje, o które prosiłem, pozostawiając proste opisy tekstowe stwierdzające, że „logika programu idzie tutaj. "

Po wielu powtarzanych testach stało się dla mnie jasne, że jeśli poprosisz ChatGPT o dostarczenie kompletnej aplikacji, zakończy się to niepowodzeniem. Konsekwencją tej obserwacji jest to, że jeśli nie wiesz nic o kodowaniu i chcesz, aby ChatGPT coś dla ciebie zbudował, to się nie powiedzie.

Tam, gdzie ChatGPT odnosi sukces — i robi to bardzo dobrze — polega na pomaganiu komuś, kto już wie, jak kodować, w budowaniu określonych procedur i wykonywaniu określonych zadań. Nie pytaj o aplikację działającą na pasku menu. Ale jeśli poprosisz ChatGPT o procedurę umieszczania menu na pasku menu, a następnie wkleisz to do swojego projektu, wszystko pójdzie całkiem dobrze.

Ponadto: Jak używać ChatGPT do tworzenia aplikacji

Należy również pamiętać, że chociaż ChatGPT wydaje się mieć ogromną ilość wiedzy specyficznej dla domeny (i często tak jest), brakuje mu mądrości . W związku z tym może być w stanie napisać kod, ale nie będzie w stanie napisać kodu zawierającego niuanse dotyczące bardzo specyficznych lub złożonych problemów, których zrozumienie wymaga głębokiego doświadczenia.

Używaj ChatGPT do demonstrowania technik, pisania małych algorytmów i tworzenia podprogramów. Możesz nawet poprosić ChatGPT o pomoc w rozbiciu większego projektu na części, a następnie możesz poprosić go o pomoc w kodowaniu tych części.

Mając to na uwadze, przyjrzyjmy się kilku konkretnym krokom, jak używać ChatGPT do pisania kodu.

Jak ChatGPT może pomóc w pisaniu kodu

1. Zawęź i doprecyzuj swoją prośbę

Pierwszym krokiem jest podjęcie decyzji, o co chcesz zapytać ChatGPT — ale jeszcze o nic nie pytaj. Zdecyduj, co ma robić Twoja funkcja lub procedura, albo czego chcesz się dowiedzieć o uwzględnieniu w swoim kodzie. Zdecyduj, jakie parametry zamierzasz przekazać do swojego kodu i co chcesz uzyskać. A potem spójrz, jak zamierzasz to opisać.

Wyobraź sobie, że płacisz za to ludzkiemu programiście. Czy przekazujesz tej osobie wystarczająco dużo informacji, by mogła pracować nad twoim zadaniem? A może jesteś zbyt niejasny, a osoba, której płacisz, jest bardziej skłonna do zadawania pytań lub składania czegoś zupełnie niezwiązanego z tym, czego chcesz?

Oto przykład. Powiedzmy, że chcę mieć możliwość podsumowania dowolnej strony internetowej. Chcę nakarmić go czymś takim jak ten artykuł i otrzymać z powrotem krótkie podsumowanie, które jest dobrze przemyślane i odpowiednie. Jako dane wejściowe określę adres URL strony internetowej. Jako moje wyjście jest to blok tekstu z podsumowaniem.

2. Użyj ChatGPT do przeglądania bibliotek i zasobów

Kontynuując powyższy przykład, bardzo starym sposobem wydobywania danych ze stron internetowych było znajdowanie tekstu między znacznikami akapitów HTML.

Jednak wraz z rozwojem narzędzi sztucznej inteligencji bardziej sensowne jest korzystanie z biblioteki sztucznej inteligencji w celu inteligentnego wyodrębniania i podsumowywania. Jednym z miejsc, w których ChatGPT wyróżnia się (i jest to również obszar, który można łatwo zweryfikować, aby uniknąć autorytatywnego, ale niewłaściwego wzorca zachowania) jest znajdowanie bibliotek i zasobów.

OpenAI (twórca ChatGPT) sprzedaje dostęp API do silników GPT-3 i GPT-4 , które zrobią dokładnie to, czego chcemy. Ale w przypadku tego przykładu załóżmy, że nie chcemy płacić opłat transakcyjnych.

Przyjrzyjmy się więc interakcji z ChatGPT, aby dowiedzieć się, jak używać takiego narzędzia za darmo w projekcie działającym w PHP.

Zacząłem od monitu, który miał na celu uzyskanie informacji o tym, które biblioteki zapewnią pożądaną funkcjonalność. Biblioteka (dla tych z was, którzy czytają dalej, którzy nie są programistami) to zbiór kodu, do którego programista może uzyskać dostęp, który wykonuje wiele ciężkich zadań w określonym celu. Dużą częścią współczesnego programowania jest znajdowanie i wybieranie odpowiednich bibliotek. Jest to więc dobry punkt wyjścia.

W tym przypadku patrzę na bloki kodu napisane przez inne osoby, które podsumują tekst. Oto moja pierwsza zachęta:

Opisz dziesięć różnych bibliotek sztucznej inteligencji typu open source (oraz języki, w których działają), których mogę użyć do wygenerowania podsumowania głównej zawartości dowolnej strony internetowej, ignorując wszelkie reklamy lub osadzone materiały.

To dało mi dokładnie to, czego chciałem, w tym wzmiankę o ofercie OpenAI. Myślę, że OpenAI świetnie by się tu sprawdziło, ale w przypadku tego hipotetycznego projektu nie chcę przeznaczać budżetu na opłaty API. Więc uściślę pytanie.

Czy któreś z nich są darmowe?

ChatGPT zabezpieczył swoje zakłady swoją odpowiedzią. Oto, co napisano: „Tak, wszystkie te dziesięć bibliotek AI jest open source i można z nich korzystać bezpłatnie. Jednak niektóre z nich mogą mieć ograniczenia użytkowania lub wymagać zapłaty za dostęp do dodatkowych funkcji lub zasobów”. Na tej podstawie wyjaśniłem swoje zapytanie.

Które z tych bibliotek nie mają ograniczeń użytkowania i nie wymagają żadnych dodatkowych opłat ani licencji?

Zauważ, jak bardzo jest to rozmowa. Nie muszę ponownie zadawać pierwotnego pytania. Po prostu drążę temat w taki sam sposób, jak gdybym miał pod ręką eksperta i szukał wyjaśnień. W tym przypadku ChatGPT dał mi osiem bibliotek do wyboru, ale żadna z nich nie wspomniała o języku PHP, w którym planowałem kodować. Oto następna zachęta:

Czy z tych 8 bibliotek mogę używać dowolnej z PHP?

Zwrócił trzy biblioteki, ale nie byłem pewien, co każda z nich zrobiła. Więc kolejne pytanie:

Jaka jest różnica między Sumy, Gensim i NLTK?

Nadal nie byłem pewien, więc wyjaśniłem mój plan użytkowania, a następnie zapytałem:

Jeśli chcę tworzyć streszczenia artykułów z wiadomościami na stronach internetowych, która biblioteka będzie działać lepiej?

Odpowiedź, którą otrzymałem, była jasna i obiecująca: „Sumy jest specjalnie zaprojektowany do streszczania tekstu, czyli tworzenia streszczenia, które wychwytuje najważniejsze informacje z fragmentu tekstu”. Więc teraz nadszedł czas, aby zobaczyć, co było związane z używaniem go z PHP. Zadałem ostatnie pytanie dotyczące tej części projektu:

Czy możesz wyjaśnić, jak używać Sumy z PHP?

Nie krępuj się grać na swoim komputerze i wklej te podpowiedzi do swojej instancji ChatGPT. Zauważ, że w kroku 1 zdecydowałem, w jakim module programu uzyskam pomoc. Następnie, w tym kroku, przeprowadziłem rozmowę z ChatGPT, aby zdecydować, jakiej biblioteki użyć i jak zintegrować ją z moim projektem.

To może nie wyglądać jak programowanie, ale zapewniam cię, że tak jest. Programowanie to nie tylko wrzucanie linijek kodu na stronę. Programowanie polega na zastanawianiu się, jak zintegrować ze sobą wszystkie różne zasoby i systemy oraz jak komunikować się ze wszystkimi różnymi komponentami rozwiązania. Tutaj ChatGPT pomógł mi przeprowadzić tę analizę integracji.

Nawiasem mówiąc, byłem ciekawy, czy Bard Google może pomóc w ten sam sposób. Bard tak naprawdę nie potrafi pisać kodu, ale dał dodatkowy wgląd w aspekt planowania programowania w odpowiedziach ChatGPT. Więc nie wahaj się użyć wielu narzędzi do triangulacji odpowiedzi, które chcesz. Oto ta historia: Bard vs. ChatGPT: Czy Bard może pomóc ci w programowaniu? Odkąd napisałem ten artykuł, Google dodał kilka możliwości kodowania do Barda, ale nie są one aż tak świetne. Możesz o tym przeczytać tutaj: Testowałem nowe umiejętności kodowania Google Bard. Nie poszło dobrze.

Kodowanie jest następne.

3. Poproś ChatGPT o napisanie przykładowego kodu

Dobra, zróbmy tutaj przerwę. Ten artykuł jest zatytułowany „Jak używać ChatGPT do pisania kodu”. I będzie! Ale tak naprawdę prosimy ChatGPT o napisanie przykładowego kodu. Czekać. Co?

Ponadto: Co to jest GPT-4? Oto wszystko, co musisz wiedzieć

Postawmy sprawę jasno. O ile nie piszesz bardzo małej funkcji (jak sorter linii/randomizator, który ChatGPT napisał dla mojej żony), ChatGPT nie będzie w stanie napisać twojego końcowego kodu. Po pierwsze, będziesz musiał go utrzymać. ChatGPT jest okropny w modyfikowaniu już napisanego kodu. Straszne, jak w, to nie robi tego. Aby uzyskać nowy kod, musisz poprosić ChatGPT o wygenerowanie czegoś nowego. Jak odkryłem wcześniej, nawet jeśli twój monit jest praktycznie identyczny, ChatGPT może zmienić to, co ci daje, w bardzo nieoczekiwany sposób.

Podsumowując: ChatGPT nie może utrzymać Twojego kodu ani nawet go zmodyfikować.

Oznacza to, że musisz to zrobić sam. Jak wiemy, pierwszy szkic fragmentu kodu rzadko jest kodem końcowym. Więc nawet jeśli spodziewałbyś się, że ChatGPT wygeneruje ostateczny kod, byłby to naprawdę punkt wyjścia, taki, w którym musisz doprowadzić go do końca, zintegrować z większym projektem, przetestować, udoskonalić, debugować i tak dalej .

Ponadto: poprosiłem ChatGPT o napisanie krótkiego odcinka Star Trek. Właściwie to się udało

Ale to nie znaczy, że przykładowy kod jest bezwartościowy. Daleko stąd. Rzućmy okiem na zachętę, którą napisałem na podstawie projektu, który opisałem wcześniej. Oto pierwsza część:

Napisz funkcję PHP o nazwie podsumowanie_artykul.

Jako dane wejściowe,sum_article zostanie przekazany adres URL artykułu w witrynie związanej z wiadomościami, takiej jak ZDNET.com lub Reuters.com.

Mówię ChatGPT, jakiego języka programowania powinien używać. Podaję również dane wejściowe, ale jednocześnie udostępniam dwie witryny jako próbki, aby pomóc ChatGPT zrozumieć styl artykułu. Szczerze mówiąc, nie jestem pewien, czy ChatGPT nie zignorował tego fragmentu wskazówek. Następnie powiem mu, jak wykonać większość pracy:

Wewnątrz podsumowania_artykulu pobierz zawartość strony internetowej pod podanym adresem URL. Używając biblioteki Sumy z PHP i wszelkich innych niezbędnych bibliotek, wyodrębnij główną część artykułu, ignorując wszelkie reklamy lub osadzone materiały, i podsumuj go do około 50 słów. Upewnij się, że podsumowanie składa się z pełnych zdań. W razie potrzeby możesz przekroczyć 50 słów, aby dokończyć ostatnie zdanie.

Jest to bardzo podobne do tego, jak poinstruowałbym pracownika. Chciałbym, żeby ta osoba wiedziała, że nie ogranicza się tylko do Sumy. Jeśli potrzebowali innego narzędzia, chciałem, żeby go użyli.

Określiłem również przybliżoną liczbę słów, aby stworzyć granice tego, co chciałem jako podsumowanie. Późniejsza wersja procedury może przyjąć tę liczbę jako parametr. Następnie zakończyłem, mówiąc, czego chciałem w rezultacie:

Po zakończeniu przetwarzania kod podsumowanie_artykuł zwraca podsumowanie w postaci zwykłego tekstu.

Wynikowy kod jest dość prosty. ChatGPT wezwał inną bibliotekę (Goose), aby pobrać zawartość artykułu. Następnie przekazał to Summy z limitem 50 słów, a następnie zwrócił wynik. Otóż to. Ale kiedy podstawy zostaną napisane, wystarczy wrócić do programowania i dodać poprawki, dostosować to, co jest przekazywane do dwóch bibliotek i dostarczyć wyniki.obraz2.png

Jedna ciekawa uwaga. ChatGPT utworzył przykładowe wywołanie napisanej przez siebie procedury, używając adresu URL sprzed 2021 r. (kiedy kończy się zbiór danych ChatGPT).

Sprawdziłem ten adres URL zarówno w witrynie Reuters, jak iw Wayback Machine, i nie istnieje. ChatGPT właśnie to wymyślił.

Często zadawane pytania

Czy ChatGPT zastępuje programistów?

Nie teraz — a przynajmniej — jeszcze nie. Programy ChatGPT na poziomie zdolnego studenta pierwszego roku programowania, ale jest leniwy (jak ten student pierwszego roku). Może zmniejszyć zapotrzebowanie na bardzo początkujących programistów, ale na obecnym poziomie myślę, że po prostu ułatwi życie początkującym programistom (a nawet programistom z większym doświadczeniem) pisanie kodu i wyszukiwanie informacji. Zdecydowanie oszczędza czas, ale jest kilka projektów programistycznych, które może wykonać samodzielnie — przynajmniej teraz. w 2030? Kto wie.

Jak uzyskać kodowanie odpowiedzi w ChatGPT?

Po prostu zapytaj. Powyżej widzieliście, jak wykorzystałem interaktywne okno dialogowe do zawężenia odpowiedzi, których chciałem. Kiedy pracujesz z ChatGPT, nie oczekuj, że jedno pytanie w magiczny sposób wykona całą pracę za Ciebie. Ale użyj ChatGPT jako pomocnika i zasobu, a dostarczy ci wielu bardzo pomocnych informacji. Oczywiście przetestuj te informacje – ponieważ, jak mówi John Schulman, współzałożyciel OpenAI: „Najbardziej martwiliśmy się o fakty, ponieważ model lubi fabrykować rzeczy”.

Jeśli używam ChatGPT do pisania kodu, kto jest jego właścicielem?

Jak się okazuje, nie ma jeszcze zbyt wielu orzecznictwa, które definitywnie odpowiadałoby na to pytanie. Stany Zjednoczone, Kanada i Wielka Brytania wymagają, aby coś, co jest chronione prawami autorskimi, zostało stworzone ludzkimi rękami, więc kod wygenerowany przez narzędzie sztucznej inteligencji może nie podlegać prawom autorskim. Istnieją również kwestie odpowiedzialności w zależności od tego, skąd pochodzi kod szkoleniowy i jak jest używany kod wynikowy. ZDNET dokładnie zagłębił się w ten temat, rozmawiał z ekspertami prawnymi i opublikował następujące trzy artykuły. Jeśli martwisz się tym problemem (i jeśli używasz sztucznej inteligencji do pomocy w kodzie, powinieneś być), polecam przeczytanie.

  • Kto jest właścicielem kodu? Jeśli sztuczna inteligencja ChatGPT pomaga w pisaniu Twojej aplikacji, czy nadal należy ona do Ciebie?
  • Jeśli używasz kodu generowanego przez sztuczną inteligencję, jaka jest Twoja ekspozycja na odpowiedzialność?
  • Drażliwe pytanie: kto jest właścicielem kodu, obrazów i narracji generowanych przez sztuczną inteligencję?

Jakie języki programowania obsługuje ChatGPT?

Większość z nich. Bardzo się pogubiłem próbując tego. Testowałem popularne współczesne języki, takie jak PHP, Python, Java, Kotlin, Swift, C# i inne. Ale potem kazałem mu pisać kod w mało znanych językach z epoki ciemnej, takich jak COBOL, Fortran, Forth, LISP, ALGOL, RPG (generator programów raportujących, a nie gra fabularna), a nawet asembler IBM/360.

Jako wisienkę na torcie dałem mu ten monit:

Napisz sekwencję wyświetlającą napis „Witaj, świecie” w postaci migających światełek ASCII na przednim panelu PDP 8/e

PDP 8/e był moim pierwszym komputerem, a ChatGPT dał mi instrukcje dotyczące przełączania programu za pomocą przełączników na przednim panelu. Byłem pod wrażeniem, uradowany i trochę przestraszony.

Jakie jest podsumowanie? ChatGPT może być bardzo pomocnym narzędziem. Tylko nie przypisuj mu supermocy. Już.

Powiązane artykuły

Więcej informacji >>

Odblokuj moc AI dzięki HIX.AI!