Hvordan bruke ChatGPT til å skrive kode

bilde1.pngEn av de mer spennende oppdagelsene om ChatGPT er at den kan skrive ganske god kode. Jeg testet dette ut i februar da jeg ba den om å skrive en WordPress-plugin min kone kunne bruke på nettstedet hennes. Det gjorde en god jobb, men det var et veldig enkelt prosjekt.

Hvordan bruke ChatGPT til å skrive: CV| Excel-formler | Essays | Følgebrev

Hvordan kan du bruke ChatGPT til å skrive kode som en del av din daglige kodingspraksis? Det er det vi skal utforske her.

Hvilke typer koding kan ChatGPT gjøre bra?

Det er to viktige fakta om ChatGPT og koding. Den første er at den faktisk kan skrive nyttig kode. Den andre er at den kan gå seg helt bort, falle ned i kaninhullet, jage etter sin egen hale og produsere absolutt ubrukelig søppel.

Jeg fant ut dette på den harde måten. Etter at jeg var ferdig med WordPress-pluginen, bestemte jeg meg for å se hvor langt ChatGPT kunne gå. Jeg skrev ut en veldig nøye melding for en Mac-applikasjon, inkludert detaljerte beskrivelser av brukergrensesnittelementer, interaksjoner, hva som ville bli gitt i innstillinger, hvordan de ville fungere, og så videre. Så matet jeg den til ChatGPT.

ChatGPT svarte med en flom av tekst og kode. Så stoppet det midt i koden. Da jeg ba den fortsette, kastet den opp enda mer kode og tekst. Jeg ba om fortsette etter fortsett, og det dumpet ut mer og mer kode. Men... ingenting av det var brukbart . Den identifiserte ikke hvor koden skulle gå, hvordan prosjektet skulle konstrueres, og - når jeg så nøye på koden som ble produsert - utelot den store operasjoner jeg ba om, og la igjen enkle tekstbeskrivelser som sa "programlogikk går her. "

Etter en haug med gjentatte tester ble det klart for meg at hvis du ber ChatGPT om å levere en komplett søknad, vil den mislykkes. En følge av denne observasjonen er at hvis du ikke kan noe om koding og vil at ChatGPT skal bygge deg noe, vil det mislykkes.

Der ChatGPT lykkes – og gjør det veldig bra – er å hjelpe noen som allerede vet hvordan de skal kode å bygge spesifikke rutiner og få spesifikke oppgaver utført. Ikke be om en app som kjører på menylinjen. Men hvis du ber ChatGPT om en rutine for å sette en meny på menylinjen, og deretter lime den inn i prosjektet ditt, vil det gå ganske bra.

Også: Slik bruker du ChatGPT til å lage en app

Husk også at mens ChatGPT ser ut til å ha en enorm mengde domenespesifikk kunnskap (og det gjør den ofte), mangler den visdom . Som sådan kan den kanskje skrive kode, men den vil ikke være i stand til å skrive kode som inneholder nyansene for svært spesifikke eller komplekse problemer som krever dyp erfaring for å forstå.

Bruk ChatGPT til å demonstrere teknikker, skrive små algoritmer og lage subrutiner. Du kan til og med få ChatGPT til å hjelpe deg med å dele opp et større prosjekt i biter, og så kan du be den om å hjelpe deg med å kode disse delene.

Så, med det i tankene, la oss se på noen spesifikke trinn for hvordan du bruker ChatGPT til å skrive kode.

Hvordan ChatGPT kan hjelpe deg med å skrive kode

1. Begrens og spiss opp forespørselen din

Dette første trinnet er å bestemme hva du skal spørre ChatGPT om – men ikke spørre om noe ennå. Bestem deg for hva du vil at funksjonen eller rutinen din skal gjøre, eller hva du vil lære om å inkludere i koden din. Bestem deg for parameterne du skal sende inn i koden din og hva du vil få ut. Og så se på hvordan du skal beskrive det.

Tenk deg at du betaler en menneskelig programmerer for å gjøre dette. Gir du den personen nok informasjon til å kunne jobbe med oppgaven din? Eller er du for vag og det er mer sannsynlig at personen du betaler enten stiller spørsmål eller sender inn noe som ikke er relatert til det du ønsker?

Her er et eksempel. La oss si at jeg ønsker å kunne oppsummere hvilken som helst nettside. Jeg vil gi den noe som denne artikkelen og få tilbake en kort oppsummering som er veloverveid og passende. Som mitt input vil jeg spesifisere en nettside-URL. Som min utgang er det en tekstblokk med et sammendrag.

2. Bruk ChatGPT til å utforske biblioteker og ressurser

For å fortsette med eksemplet ovenfor, var en veldig gammel måte å trekke ut nettsidedata på å finne teksten mellom HTML-avsnittskoder.

Men med fremveksten av AI-verktøy er det mer fornuftig å bruke et AI-bibliotek til å gjøre et intelligent utdrag og sammendrag. Et av stedene ChatGPT utmerker seg (og det er også et område du enkelt kan verifisere for å unngå det autoritative, men feilaktige atferdsmønsteret), er å finne biblioteker og ressurser.

OpenAI (produsenten av ChatGPT) selger API-tilgang til GPT-3- og GPT-4- motorene som vil gjøre akkurat det vi vil. Men i tilfellet med dette eksemplet, la oss anta at vi ikke ønsker å betale transaksjonsgebyrer.

Så la oss se på samhandling med ChatGPT for å finne ut hvordan du bruker et slikt verktøy, gratis, med et prosjekt som kjører i PHP.

Jeg startet med en melding som var designet for å få frem informasjon om hvilke biblioteker som ville gi funksjonaliteten jeg ønsket. Et bibliotek (for de av dere som leser med og som ikke er programmerere) er en kode som en programmerer kan få tilgang til som gjør mye av det tunge løftet for et bestemt formål. En stor del av moderne programmering er å finne og velge de riktige bibliotekene. Så dette er et godt utgangspunkt.

I dette tilfellet ser jeg på kodeblokker skrevet av andre som vil oppsummere tekst. Her er min første melding:

Beskriv ti forskjellige AI-biblioteker med åpen kildekode (og språkene de jobber med) som jeg kan bruke til å generere et sammendrag av hovedinnholdet på en hvilken som helst nettside, og ignorere eventuelle annonser eller innebygd materiale.

Dette ga meg akkurat det jeg ønsket, inkludert en omtale av OpenAIs tilbud. Jeg tror OpenAI ville gjort det bra her, men for dette hypotetiske prosjektet vil jeg ikke budsjettere med API-avgifter. Så jeg skal begrense spørsmålet.

Er noen av disse gratis?

ChatGPT sikret sine innsatser med sitt svar. Her er hva den sa: "Ja, alle ti av disse AI-bibliotekene er åpen kildekode og gratis å bruke. Noen av dem kan imidlertid ha bruksgrenser eller kreve betaling for tilgang til tilleggsfunksjoner eller ressurser." Så, basert på det, avklarte jeg spørsmålet mitt.

Hvilke av disse bibliotekene har ingen bruksgrenser og krever ingen ekstra betaling eller lisensiering?

Legg merke til hvordan dette i høy grad er en samtale. Jeg trenger ikke å stille det opprinnelige spørsmålet på nytt. Jeg borer bare ned på samme måte som hvis jeg hadde en ekspert for hånden og søkte avklaring. I dette tilfellet ga ChatGPT meg åtte bibliotekvalg, men ingen av dem nevnte PHP-språket jeg planla å kode i. Så her er neste spørsmål:

Kan jeg bruke noen av disse 8 bibliotekene med PHP?

Den returnerte tre biblioteker, men jeg var ikke sikker på hva hvert av dem gjorde. Så et annet spørsmål:

Hva er forskjellen mellom Sumy, Gensim og NLTK?

Jeg var fortsatt ikke sikker, så jeg avklarte bruksplanen min og spurte deretter:

Hvis jeg vil lage sammendrag av nyhetsartikler på nettsider, hvilket bibliotek ville fungere bedre?

Svaret jeg fikk var klart og lovende: «Sumy er spesielt utviklet for tekstoppsummering, som er oppgaven med å lage et sammendrag som fanger opp den viktigste informasjonen fra et tekststykke». Så nå var det på tide å se hva som var involvert i å bruke det med PHP. Jeg stilte mitt siste spørsmål til denne delen av prosjektet:

Kan du forklare hvordan du bruker Sumy fra PHP?

Spill gjerne med på datamaskinen din og lim inn disse ledetekstene i din forekomst av ChatGPT. Legg merke til at jeg i trinn 1 bestemte meg for hvilken programmodul jeg skulle få hjelp til. Så, i dette trinnet, hadde jeg en samtale med ChatGPT for å bestemme hvilket bibliotek jeg skulle bruke og hvordan jeg skulle integrere det i prosjektet mitt.

Det virker kanskje ikke som programmering, men jeg forsikrer deg om at det er det. Programmering er ikke bare å sprenge linjer med kode inn på en side. Programmering er å finne ut hvordan du integrerer alle de ulike ressursene og systemene sammen, og hvordan du snakker med alle de ulike komponentene i løsningen din. Her hjalp ChatGPT meg med den integrasjonsanalysen.

Jeg var forresten nysgjerrig på om Googles Bard kunne hjelpe på samme måte. Bard kan faktisk ikke skrive kode, men det ga litt ekstra innsikt i planleggingsaspektet ved programmering over ChatGPTs svar. Så ikke nøl med å bruke flere verktøy for å triangulere svarene du ønsker. Her er den historien: Bard vs. ChatGPT: Kan Bard hjelpe deg med å kode? Siden jeg skrev den artikkelen, har Google lagt til noen kodefunksjoner til Bard, men de er ikke så gode. Du kan lese om det her: Jeg testet Google Bards nye kodeferdigheter. Det gikk ikke bra.

Koding er neste.

3. Be ChatGPT om å skrive eksempelkode

Ok, la oss ta en pause her. Denne artikkelen har tittelen "Hvordan bruke ChatGPT til å skrive kode." Og det vil det! Men vi ber virkelig ChatGPT om å skrive eksempelkode . Vente. Hva?

Også: Hva er GPT-4? Her er alt du trenger å vite

La oss være klare. Med mindre du skriver en veldig liten funksjon (som linjesorteren/randomizeren ChatGPT skrev for min kone), vil ikke ChatGPT kunne skrive den endelige koden. Først må du vedlikeholde den. ChatGPT er forferdelig til å endre allerede skrevet kode. Forferdelig, som i, det gjør det ikke. Så for å få ny kode, må du be ChatGPT om å generere noe nytt. Som jeg fant tidligere, selv om spørsmålet ditt er praktisk talt identisk, kan ChatGPT endre det det gir deg på svært uventede måter.

Så, bunnlinjen: ChatGPT kan ikke vedlikeholde koden din, eller til og med justere den.

Det betyr at du må gjøre det selv. Som vi vet, er det første utkastet til et kodestykke sjelden den endelige koden. Så selv om du skulle forvente at ChatGPT skulle generere endelig kode, ville det virkelig være et utgangspunkt, et hvor du må ta den til fullføring, integrere den i ditt større prosjekt, teste den, avgrense den, feilsøke den, og så videre .

Også: Jeg ba ChatGPT om å skrive en kort Star Trek-episode. Det lyktes faktisk

Men det betyr ikke at eksempelkoden er verdiløs. Langt ifra. La oss ta en titt på en forespørsel jeg skrev basert på prosjektet jeg beskrev tidligere. Her er den første delen:

Med en PHP-funksjon kalt summarize_article.

Som input vil summarize_article bli sendt en URL til en artikkel på et nyhetsrelatert nettsted som ZDNET.com eller Reuters.com.

Jeg forteller ChatGPT hvilket programmeringsspråk den skal bruke. Jeg forteller det også innspillet, men mens jeg gjør det, gir jeg to nettsteder som eksempler for å hjelpe ChatGPT med å forstå artikkelens stil. Ærlig talt, jeg er ikke sikker på at ChatGPT ikke ignorerte den biten veiledning. Deretter skal jeg fortelle det hvordan du gjør mesteparten av arbeidet:

Inne i summarize_article, hent innholdet på nettsiden på URL-en som er oppgitt. Bruk biblioteket Sumy fra PHP og eventuelle andre nødvendige biblioteker, trekk ut hoveddelen av artikkelen, ignorer eventuelle annonser eller innebygd materiale, og oppsummer det til omtrent 50 ord. Sørg for at sammendraget består av fullstendige setninger. Du kan gå over de 50 ordene for å fullføre den siste setningen, om nødvendig.

Dette er veldig likt hvordan jeg ville instruert en ansatt. Jeg vil at personen skal vite at de ikke bare var begrenset til Sumy. Hvis de trengte et annet verktøy, ville jeg at de skulle bruke det.

Jeg spesifiserte også et omtrentlig antall ord for å sette grenser for hva jeg ønsket som et sammendrag. En senere versjon av rutinen kan ta dette nummeret som en parameter. Jeg avsluttet med å si hva jeg ønsket som et resultat:

Når behandlingen er fullført, koder summarize_article slik at den returnerer sammendraget i ren tekst.

Den resulterende koden er ganske enkel. ChatGPT ringte et annet bibliotek (Goose) for å hente artikkelinnholdet. Den ga det så til Summy med en grense på 50 ord, og returnerte deretter resultatet. Det er det. Men når det grunnleggende er skrevet, er det bare et spørsmål om programmering for å gå tilbake og legge til justeringer, tilpasse hva som sendes til de to bibliotekene og levere resultatene.image2.png

Et interessant punkt. ChatGPT opprettet et eksempelanrop til rutinen den skrev, ved å bruke en URL fra etter 2021 (når ChatGPTs datasett slutter).

Jeg sjekket den URL-en mot både Reuters sin side og Wayback Machine, og den eksisterer ikke. ChatGPT har nettopp funnet opp.

Vanlige spørsmål

Erstatter ChatGPT programmerere?

Ikke nå - eller i det minste - ikke ennå. ChatGPT programmer på nivå med en talentfull førsteårs programmeringsstudent, men det er lat (som den førsteårsstudenten). Det kan redusere behovet for programmerere på svært nybegynnernivå, men på det nåværende nivået tror jeg det bare vil gjøre livet enklere for programmerere på nybegynnernivå (og til og med programmerere med mer erfaring) å skrive kode og slå opp informasjon. Det er definitivt en tidsbesparende, men det er få programmeringsprosjekter den kan gjøre på egen hånd - i hvert fall nå. I 2030? Hvem vet.

Hvordan får jeg kodesvar i ChatGPT?

Bare spør det. Du så ovenfor hvordan jeg brukte en interaktiv diskusjonsdialog for å begrense svarene jeg ønsket. Når du jobber med ChatGPT, ikke forvent at ett spørsmål på magisk vis kan gjøre alt arbeidet ditt for deg. Men bruk ChatGPT som en hjelper og ressurs, og det vil gi deg mye nyttig informasjon. Test selvfølgelig den informasjonen - for som John Schulman, en av grunnleggerne av OpenAI, sier: "Vår største bekymring var rundt fakta, fordi modellen liker å dikte opp ting."

Hvis jeg bruker ChatGPT til å skrive koden min, hvem eier den?

Som det viser seg, er det ikke mye rettspraksis ennå for å definitivt svare på dette spørsmålet. USA, Canada og Storbritannia krever at noe som er opphavsrettslig beskyttet, er laget av menneskehender, så kode generert av et AI-verktøy er kanskje ikke opphavsrettsbeskyttet. Det er også spørsmål om ansvar basert på hvor opplæringskoden kom fra og hvordan den resulterende koden brukes. ZDNET gjorde et dypdykk i dette emnet, snakket med juridiske eksperter og produserte følgende tre artikler. Hvis du er bekymret for dette problemet (og hvis du bruker AI for å hjelpe med kode, bør du være det), anbefaler jeg at du leser dem.

  • Hvem eier koden? Hvis ChatGPTs AI hjelper med å skrive appen din, tilhører den fortsatt deg?
  • Hvis du bruker AI-generert kode, hva er din ansvarseksponering?
  • Et vanskelig spørsmål: Hvem eier kode, bilder og fortellinger generert av AI?

Hvilke programmeringsspråk kan ChatGPT?

De fleste av dem. Jeg ble veldig sidespor av å prøve dette. Jeg testet vanlige moderne språk, som PHP, Python, Java, Kotlin, Swift, C# og mer. Men så fikk jeg den til å skrive kode på obskure mørke-alderspråk som COBOL, Fortran, Forth, LISP, ALGOL, RPG (rapportprogramgeneratoren, ikke rollespillet), og til og med IBM/360 assembly-språk.

Som prikken over i'en ga jeg den denne oppfordringen:

Skriv en sekvens som viser 'Hello, world' i ascii blinkende lys på frontpanelet til en PDP 8/e

PDP 8/e var min aller første datamaskin, og ChatGPT ga meg faktisk instruksjoner for å bytte i et program ved hjelp av frontpanelbrytere. Jeg var imponert, glad og litt redd.

Hva er bunnlinjen? ChatGPT kan være et veldig nyttig verktøy. Bare ikke tilskriv det superkrefter. Ennå.

Relaterte Artikler

Se mer >>

Lås opp kraften til AI med HIX.AI!