Sådan bruger du ChatGPT til at skrive kode

billede1.pngEn af de mere spændende opdagelser om ChatGPT er, at den kan skrive ret god kode. Jeg testede dette i februar, da jeg bad det om at skrive et WordPress-plugin, som min kone kunne bruge på sin hjemmeside. Det gjorde et fint stykke arbejde, men det var et meget simpelt projekt.

Sådan bruger du ChatGPT til at skrive: CV| Excel-formler | Essays | Følgebreve

Hvordan kan du bruge ChatGPT til at skrive kode som en del af din daglige kodningspraksis? Det er det, vi skal udforske her.

Hvilke typer kodning kan ChatGPT gøre godt?

Der er to vigtige fakta om ChatGPT og kodning. Den første er, at den faktisk kan skrive nyttig kode. Den anden er, at den kan fare helt vild, falde ned i kaninhullet, jage sin egen hale og producere absolut ubrugeligt affald.

Jeg fandt ud af det på den hårde måde. Efter at jeg var færdig med WordPress-pluginet, besluttede jeg at se, hvor langt ChatGPT kunne gå. Jeg skrev en meget omhyggelig opfordring til et Mac-program, inklusive detaljerede beskrivelser af brugergrænsefladeelementer, interaktioner, hvad der ville blive leveret i indstillinger, hvordan de ville fungere, og så videre. Så fodrede jeg det til ChatGPT.

ChatGPT svarede med en strøm af tekst og kode. Så stoppede det midt i koden. Da jeg bad den om at fortsætte, kastede den endnu mere kode og tekst op. Jeg bad om at fortsætte efter at fortsætte, og det dumpede mere og mere kode ud. Men... intet af det var brugbart . Den identificerede ikke, hvor koden skulle hen, hvordan man konstruerer projektet, og - da jeg så nøje på den producerede kode - udelod den større operationer, jeg anmodede om, og efterlod i enkle tekstbeskrivelser, hvor der stod "programlogik går her. "

Efter en masse gentagne tests blev det klart for mig, at hvis du beder ChatGPT om at levere en komplet ansøgning, vil den mislykkes. En konsekvens af denne observation er, at hvis du intet ved om kodning og ønsker, at ChatGPT skal bygge dig noget, vil det mislykkes.

Hvor ChatGPT lykkes - og gør det meget godt - er at hjælpe en person, der allerede ved, hvordan man koder, med at opbygge specifikke rutiner og få udført specifikke opgaver. Spørg ikke efter en app, der kører på menulinjen. Men hvis du beder ChatGPT om en rutine for at sætte en menu på menulinjen og derefter indsætte den i dit projekt, vil det gå ganske godt.

Også: Sådan bruger du ChatGPT til at oprette en app

Husk også, at selvom ChatGPT ser ud til at have en enorm mængde domænespecifik viden (og det gør den ofte), så mangler den visdom . Som sådan kan den muligvis skrive kode, men den vil ikke være i stand til at skrive kode, der indeholder nuancerne til meget specifikke eller komplekse problemer, der kræver dyb erfaring for at forstå.

Brug ChatGPT til at demonstrere teknikker, skrive små algoritmer og producere underrutiner. Du kan endda få ChatGPT til at hjælpe dig med at opdele et større projekt i bidder, og så kan du bede det om at hjælpe dig med at kode disse bidder.

Så med det i tankerne, lad os se på nogle specifikke trin til, hvordan man bruger ChatGPT til at skrive kode.

Hvordan ChatGPT kan hjælpe dig med at skrive kode

1. Indsnævre og skærp din anmodning

Dette første skridt er at beslutte, hvad du vil bede om af ChatGPT - men endnu ikke spørge om noget. Bestem, hvad du vil have din funktion eller rutine til at gøre, eller hvad du vil lære om at inkorporere i din kode. Beslut dig for de parametre, du vil overføre til din kode, og hvad du vil have ud. Og se så på, hvordan du vil beskrive det.

Forestil dig, at du betaler en menneskelig programmør for at gøre dette. Giver du den person nok information til at kunne arbejde på din opgave? Eller er du for vag, og den person, du betaler, er mere tilbøjelig til enten at stille spørgsmål eller aflevere noget, der ikke er relateret til det, du ønsker?

Her er et eksempel. Lad os sige, at jeg vil være i stand til at opsummere enhver webside. Jeg vil gerne give den noget som denne artikel og få et kort resumé tilbage, der er velovervejet og passende. Som mit input angiver jeg en webside-URL. Som mit output er det en tekstblok med et resumé.

2. Brug ChatGPT til at udforske biblioteker og ressourcer

For at fortsætte med eksemplet ovenfor var en meget gammel måde at udtrække websidedata på at finde teksten mellem HTML-afsnitstags.

Men med fremkomsten af AI-værktøjer giver det mere mening at bruge et AI-bibliotek til at lave et intelligent uddrag og resumé. Et af de steder ChatGPT udmærker sig (og det er også et område, du nemt kan verificere for at undgå dets autoritative-men-forkerte adfærdsmønster) er at finde biblioteker og ressourcer.

OpenAI (producenten af ChatGPT) sælger API-adgang til GPT-3- og GPT-4- motorerne, der vil gøre præcis, hvad vi ønsker. Men i tilfælde af dette eksempel, lad os antage, at vi ikke ønsker at betale transaktionsgebyrer.

Så lad os se på at interagere med ChatGPT for at finde ud af, hvordan man bruger sådan et værktøj gratis med et projekt, der kører i PHP.

Jeg startede med en prompt, der var designet til at fremkalde information om, hvilke biblioteker der ville give den funktionalitet, jeg ønskede. Et bibliotek (for dem af jer, der læser med, og som ikke er programmører) er en kode, som en programmør kan få adgang til, og som udfører mange af de tunge løft til et bestemt formål. En stor del af moderne programmering er at finde og vælge de rigtige biblioteker. Så dette er et godt udgangspunkt.

I dette tilfælde kigger jeg på kodeblokke skrevet af andre mennesker, som vil opsummere tekst. Her er min første prompt:

Beskriv ti forskellige open source AI-biblioteker (og de sprog, de arbejder med), som jeg kan bruge til at generere en oversigt over det vigtigste kerneindhold på enhver webside, idet jeg ignorerer eventuelle annoncer eller indlejrede materialer.

Dette gav mig præcis, hvad jeg ønskede, inklusive en omtale af OpenAI's tilbud. Jeg tror, at OpenAI ville klare sig godt her, men for dette hypotetiske projekt ønsker jeg ikke at budgettere med API-gebyrer. Så jeg vil indsnævre spørgsmålet.

Er nogen af disse gratis?

ChatGPT sikrede sine indsatser med sit svar. Her er, hvad den sagde: "Ja, alle ti af disse AI-biblioteker er open source og gratis at bruge. Nogle af dem kan dog have brugsgrænser eller kræve betaling for adgang til yderligere funktioner eller ressourcer." Så ud fra det afklarede jeg min forespørgsel.

Hvilke af disse biblioteker har ingen brugsgrænser og kræver ingen yderligere betaling eller licensering?

Læg mærke til, hvordan dette i høj grad er en samtale. Jeg behøver ikke at stille det oprindelige spørgsmål igen. Jeg borer bare ned på samme måde, som jeg ville, hvis jeg havde en ekspert ved hånden og søgte en afklaring. I dette tilfælde gav ChatGPT mig otte biblioteksvalg, men ingen af dem nævnte PHP-sproget, som jeg planlagde at kode i. Så her er den næste prompt:

Kan jeg bruge nogen af disse 8 biblioteker med PHP?

Det returnerede tre biblioteker, men jeg var ikke sikker på, hvad hver af dem gjorde. Så et andet spørgsmål:

Hvad er forskellen mellem Sumy, Gensim og NLTK?

Jeg var stadig ikke sikker, så jeg præciserede min brugsplan og spurgte derefter:

Hvis jeg vil oprette resuméer af websiders nyhedsartikler, hvilket bibliotek ville så fungere bedre?

Svaret, jeg fik, var klart og lovende: "Sumy er specielt designet til tekstresumé, som er opgaven med at skabe et resumé, der fanger den vigtigste information fra et stykke tekst." Så nu var det tid til at se, hvad der var involveret i at bruge det med PHP. Jeg stillede mit sidste spørgsmål til denne del af projektet:

Kan du forklare, hvordan man bruger Sumy fra PHP?

Du er velkommen til at spille med på din computer og indsætte disse prompter i din forekomst af ChatGPT. Bemærk, at jeg i trin 1 besluttede, hvilket programmodul jeg skulle have hjælp til. Derefter, i dette trin, havde jeg en samtale med ChatGPT for at beslutte, hvilket bibliotek jeg skulle bruge, og hvordan det skulle integreres i mit projekt.

Det virker måske ikke som programmering, men det kan jeg forsikre dig om, at det er. Programmering er ikke bare at sprænge kodelinjer ind på en side. Programmering er at finde ud af, hvordan man integrerer alle de forskellige ressourcer og systemer sammen, og hvordan man taler med alle de forskellige komponenter i din løsning. Her hjalp ChatGPT mig med at lave den integrationsanalyse.

Jeg var i øvrigt spændt på, om Googles Bard kunne hjælpe på samme måde. Bard kan faktisk ikke skrive kode, men det gav nogle ekstra indsigter i planlægningsaspektet ved programmering over ChatGPTs svar. Så tøv ikke med at bruge flere værktøjer til at triangulere de svar, du ønsker. Her er den historie: Bard vs. ChatGPT: Kan Bard hjælpe dig med at kode? Siden jeg skrev den artikel, har Google tilføjet nogle kodningsmuligheder til Bard, men de er ikke så gode. Du kan læse om det her: Jeg testede Google Bards nye kodningsevner. Det gik ikke godt.

Kodning er den næste.

3. Bed ChatGPT om at skrive eksempelkode

Okay, lad os tage en pause her. Denne artikel har titlen "Sådan bruger du ChatGPT til at skrive kode." Og det vil det! Men vi beder virkelig ChatGPT om at skrive eksempelkode . Vente. Hvad?

Også: Hvad er GPT-4? Her er alt, hvad du behøver at vide

Lad os være klare. Medmindre du skriver en meget lille funktion (som linjesorteren/randomizeren ChatGPT skrev til min kone), vil ChatGPT ikke være i stand til at skrive din endelige kode. For det første bliver du nødt til at vedligeholde den. ChatGPT er forfærdelig til at ændre allerede skrevet kode. Forfærdeligt, som i, det gør det ikke. Så for at få ny kode, skal du bede ChatGPT om at generere noget nyt. Som jeg fandt tidligere, selvom din prompt er praktisk talt identisk, kan ChatGPT ændre, hvad det giver dig på meget uventede måder.

Så bundlinje: ChatGPT kan ikke vedligeholde din kode eller endda justere den.

Det betyder, at du skal gøre det selv. Som vi ved, er det første udkast til et stykke kode sjældent den endelige kode. Så selvom du skulle forvente, at ChatGPT ville generere den endelige kode, ville det virkelig være et udgangspunkt, hvor du skal tage den til færdiggørelse, integrere den i dit større projekt, teste den, forfine den, fejlfinde den og så videre .

Også: Jeg bad ChatGPT om at skrive en kort Star Trek-episode. Det lykkedes faktisk

Men det betyder ikke, at eksempelkoden er værdiløs. Langt fra. Lad os tage et kig på en prompt, jeg skrev baseret på det projekt, jeg beskrev tidligere. Her er første del:

Med en PHP-funktion kaldet summarize_article.

Som input vil summarize_article blive sendt en URL til en artikel på et nyhedsrelateret websted som ZDNET.com eller Reuters.com.

Jeg fortæller ChatGPT, hvilket programmeringssprog den skal bruge. Jeg fortæller det også input, men mens jeg gør det, giver jeg to websteder som eksempler for at hjælpe ChatGPT med at forstå artiklens stil. Helt ærligt, jeg er ikke sikker på, at ChatGPT ikke ignorerede den smule vejledning. Dernæst vil jeg fortælle det, hvordan man udfører hovedparten af arbejdet:

Inde i summarize_article skal du hente indholdet af websiden på den angivne URL. Brug biblioteket Sumy fra PHP og eventuelle andre nødvendige biblioteker, udtræk artiklens hoveddel, ignorer eventuelle annoncer eller indlejrede materialer og opsummer det til cirka 50 ord. Sørg for, at resuméet består af komplette sætninger. Du kan gå over de 50 ord for at afslutte den sidste sætning, hvis det er nødvendigt.

Dette minder meget om, hvordan jeg ville instruere en medarbejder. Jeg vil have den person til at vide, at de ikke kun var begrænset til Sumy. Hvis de havde brug for et andet værktøj, ville jeg have dem til at bruge det.

Jeg specificerede også et omtrentligt antal ord for at skabe grænser for, hvad jeg ønskede som et resumé. En senere version af rutinen kan tage dette nummer som en parameter. Jeg sluttede så med at sige, hvad jeg ønskede som resultat:

Når behandlingen er færdig, kode summarize_article, så den returnerer resuméet i almindelig tekst.

Den resulterende kode er ret enkel. ChatGPT ringede til et andet bibliotek (Goose) for at hente artiklens indhold. Det overførte den derefter til Summy med en grænse på 50 ord, og returnerede derefter resultatet. Det er det. Men når det grundlæggende er skrevet, er det blot et spørgsmål om programmering at gå tilbage og tilføje tweaks, tilpasse, hvad der sendes til de to biblioteker, og levere resultaterne.image2.png

Et interessant punkt. ChatGPT oprettede et eksempelkald til den rutine, den skrev, ved hjælp af en URL fra efter 2021 (når ChatGPTs datasæt slutter).

Jeg tjekkede den URL mod både Reuters' websted og Wayback Machine, og den eksisterer ikke. ChatGPT har lige fundet på det.

Ofte stillede spørgsmål

Erstatter ChatGPT programmører?

Ikke nu - eller i det mindste - ikke endnu. ChatGPT-programmer på niveau med en talentfuld førsteårs programmeringsstuderende, men det er doven (som den førsteårsstuderende). Det kan måske reducere behovet for meget entry-level programmører, men på det nuværende niveau tror jeg, at det bare vil gøre livet lettere for entry-level programmører (og endda programmører med mere erfaring) at skrive kode og slå information op. Det er bestemt en tidsbesparende, men der er få programmeringsprojekter, den kan klare alene - i hvert fald nu. I 2030? Hvem ved.

Hvordan får jeg kodningssvar i ChatGPT?

Bare spørg det. Du så ovenfor, hvordan jeg brugte en interaktiv diskussionsdialog til at indsnævre de svar, jeg ønskede. Når du arbejder med ChatGPT, skal du ikke forvente, at ét spørgsmål på magisk vis kan gøre alt dit arbejde for dig. Men brug ChatGPT som en hjælper og ressource, og det vil give dig en masse meget nyttig information. Test selvfølgelig den information - for som John Schulman, en medstifter af OpenAI, siger: "Vores største bekymring var omkring faktualitet, fordi modellen kan lide at fremstille ting."

Hvis jeg bruger ChatGPT til at skrive min kode, hvem ejer den så?

Som det viser sig, er der ikke meget retspraksis endnu til endeligt at besvare dette spørgsmål. USA, Canada og Storbritannien kræver, at noget, der er ophavsretligt beskyttet, er skabt af menneskehænder, så kode genereret af et AI-værktøj er muligvis ikke ophavsretligt beskyttet. Der er også spørgsmål om ansvar baseret på, hvor træningskoden kom fra, og hvordan den resulterende kode bruges. ZDNET dykkede dybt i dette emne, talte med juridiske eksperter og producerede de følgende tre artikler. Hvis du er bekymret over dette problem (og hvis du bruger AI til at hjælpe med kode, burde du være det), anbefaler jeg, at du læser dem.

  • Hvem ejer koden? Hvis ChatGPTs AI hjælper med at skrive din app, tilhører den så stadig dig?
  • Hvis du bruger AI-genereret kode, hvad er din ansvarseksponering?
  • Et vanskeligt spørgsmål: Hvem ejer kode, billeder og fortællinger genereret af AI?

Hvilke programmeringssprog kender ChatGPT?

De fleste af dem. Jeg blev meget sidespor ved at prøve dette. Jeg testede almindelige moderne sprog, som PHP, Python, Java, Kotlin, Swift, C# og mere. Men så fik jeg den til at skrive kode på obskure mørketidssprog som COBOL, Fortran, Forth, LISP, ALGOL, RPG (rapportprogramgeneratoren, ikke rollespillet) og endda IBM/360 assemblersprog.

Som prikken over i'et gav jeg den denne prompt:

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

PDP 8/e var min allerførste computer, og ChatGPT gav mig faktisk instruktioner til at skifte i et program ved hjælp af frontpanelkontakter. Jeg var imponeret, glad og en smule bange.

Hvad er bundlinjen? ChatGPT kan være et meget nyttigt værktøj. Bare tilskriv det ikke superkræfter. Endnu.

Relaterede Artikler

Se mere >>

Lås op for AI-kraften med HIX.AI!