ChatGPT gebruiken om code te schrijven

afbeelding1.pngEen van de meer intrigerende ontdekkingen over ChatGPT is dat het behoorlijk goede code kan schrijven. Ik heb dit in februari getest toen ik het vroeg om een WordPress-plug-in te schrijven die mijn vrouw op haar website kon gebruiken. Het deed prima werk, maar het was een heel eenvoudig project.

Hoe ChatGPT te gebruiken om te schrijven: CV's | Excel-formules | Essays | Begeleidende brieven

Hoe kun je ChatGPT gebruiken om code te schrijven als onderdeel van je dagelijkse codeerpraktijk? Dat is wat we hier gaan onderzoeken.

Welke soorten codering kan ChatGPT goed aan?

Er zijn twee belangrijke feiten over ChatGPT en codering. De eerste is dat het in feite bruikbare code kan schrijven. De tweede is dat hij volledig kan verdwalen, in het konijnenhol kan vallen, zijn eigen staart kan achtervolgen en absoluut onbruikbaar afval kan produceren.

Ik kwam hier op de harde manier achter. Nadat ik de WordPress-plug-in had voltooid, besloot ik te kijken hoe ver ChatGPT kon gaan. Ik schreef een zeer zorgvuldige prompt voor een Mac-toepassing, inclusief gedetailleerde beschrijvingen van elementen van de gebruikersinterface, interacties, wat er zou worden voorzien in instellingen, hoe ze zouden werken, enzovoort. Daarna heb ik het aan ChatGPT doorgegeven.

ChatGPT reageerde met een stortvloed aan tekst en code. Toen stopte het halverwege de code. Toen ik het vroeg om door te gaan, braakte het nog meer code en tekst uit. Ik vroeg doorgaan na doorgaan en het dumpte steeds meer code. Maar... niets ervan was bruikbaar . Het identificeerde niet waar de code heen moest, hoe het project moest worden opgebouwd, en - toen ik goed naar de geproduceerde code keek - liet het de belangrijkste bewerkingen weg waar ik om had gevraagd, en liet in eenvoudige tekstbeschrijvingen achter met de vermelding "programmalogica komt hier. "

Na een aantal herhaalde tests werd het me duidelijk dat als je ChatGPT vraagt om een volledige applicatie te leveren, het niet lukt. Een uitvloeisel van deze observatie is dat als je niets weet over coderen en wilt dat ChatGPT iets voor je bouwt, het zal mislukken.

Waar ChatGPT in slaagt -- en dat heel goed doet -- is iemand te helpen die al weet hoe hij moet coderen om specifieke routines op te bouwen en specifieke taken uit te voeren. Vraag niet om een app die op de menubalk draait. Maar als je ChatGPT om een routine vraagt om een menu op de menubalk te zetten, en dat dan in je project plakt, dan gaat het best goed.

Ook: ChatGPT gebruiken om een app te maken

Houd er ook rekening mee dat hoewel ChatGPT een enorme hoeveelheid domeinspecifieke kennis lijkt te hebben (en dat vaak ook doet), het aan wijsheid ontbreekt . Als zodanig kan het misschien code schrijven, maar het zal niet in staat zijn om code te schrijven die de nuances bevat voor zeer specifieke of complexe problemen waarvoor diepgaande ervaring vereist is om ze te begrijpen.

Gebruik ChatGPT om technieken te demonstreren, kleine algoritmen te schrijven en subroutines te produceren. Je kunt ChatGPT zelfs vragen om je te helpen een groter project op te splitsen in stukjes, en dan kun je het vragen om je te helpen bij het coderen van die stukjes.

Laten we, met dat in gedachten, eens kijken naar enkele specifieke stappen voor het gebruik van ChatGPT om code te schrijven.

Hoe ChatGPT u kan helpen bij het schrijven van code

1. Verfijn en verscherp uw verzoek

Deze eerste stap is om te beslissen wat u van ChatGPT gaat vragen, maar nog niets te vragen. Bepaal wat u wilt dat uw functie of routine doet, of wat u wilt leren om in uw code op te nemen. Bepaal welke parameters u in uw code gaat opnemen en wat u eruit wilt halen. En kijk dan hoe je het gaat omschrijven.

Stel je voor dat je een menselijke programmeur betaalt om dit te doen. Geef je die persoon voldoende informatie om aan je opdracht te kunnen werken? Of bent u te vaag en zal de persoon die u betaalt eerder vragen stellen of iets inleveren dat totaal niets te maken heeft met wat u wilt?

Hier is een voorbeeld. Laten we zeggen dat ik elke webpagina wil kunnen samenvatten. Ik wil het zoiets als dit artikel voeden en een korte samenvatting terugkrijgen die weloverwogen en passend is. Als mijn input zal ik een webpagina-URL specificeren. Als mijn uitvoer is het een blok tekst met een samenvatting.

2. Gebruik ChatGPT om bibliotheken en bronnen te verkennen

Om verder te gaan met het bovenstaande voorbeeld: een ouderwetse manier om gegevens van webpagina's te extraheren, was om de tekst tussen HTML-paragraaftags te vinden.

Maar met de opkomst van AI-tools is het logischer om een AI-bibliotheek te gebruiken om een intelligent extract en samenvatting te maken. Een van de plaatsen waar ChatGPT uitblinkt (en het is ook een gebied dat u gemakkelijk kunt verifiëren om het gezaghebbende maar verkeerde gedragspatroon te vermijden) is het vinden van bibliotheken en bronnen.

OpenAI (de maker van ChatGPT) verkoopt API-toegang tot de GPT-3- en GPT-4- engines die precies zullen doen wat we willen. Maar laten we in het geval van dit voorbeeld aannemen dat we geen transactiekosten willen betalen.

Laten we dus eens kijken naar de interactie met ChatGPT om erachter te komen hoe je zo'n tool gratis kunt gebruiken met een project dat in PHP draait.

Ik begon met een prompt die was ontworpen om informatie op te roepen over welke bibliotheken de functionaliteit zouden bieden die ik wilde. Een bibliotheek (voor degenen onder u die meelezen en geen programmeur zijn) is een hoeveelheid code waartoe een programmeur toegang heeft en die veel van het zware werk doet voor een specifiek doel. Een groot deel van moderne programmering is het vinden en kiezen van de juiste bibliotheken. Dit is dus een goed uitgangspunt.

In dit geval kijk ik naar codeblokken die door andere mensen zijn geschreven en die de tekst samenvatten. Hier is mijn eerste prompt:

Beschrijf tien verschillende open source AI-bibliotheken (en de talen waarmee ze werken) die ik kan gebruiken om een samenvatting te genereren van de belangrijkste kerninhoud van een webpagina, zonder rekening te houden met advertenties of ingesloten materiaal.

Dit gaf me precies wat ik wilde, inclusief een vermelding van het aanbod van OpenAI. Ik denk dat OpenAI het hier geweldig zou doen, maar voor dit hypothetische project wil ik geen budget reserveren voor API-kosten. Dus ik zal de vraag beperken.

Is een van deze gratis?

ChatGPT dekte zijn weddenschappen af met zijn antwoord. Hier is wat het zei: "Ja, alle tien van deze AI-bibliotheken zijn open source en gratis te gebruiken. Sommige kunnen echter gebruikslimieten hebben of betaling vereisen voor toegang tot extra functies of bronnen." Dus op basis daarvan heb ik mijn vraag verduidelijkt.

Welke van deze bibliotheken hebben geen gebruikslimieten en vereisen geen extra betaling of licenties?

Merk op hoezeer dit een gesprek is. Ik hoef de oorspronkelijke vraag niet opnieuw te stellen. Ik boor gewoon op dezelfde manier als ik zou doen als ik een expert bij de hand had en opheldering zocht. In dit geval gaf ChatGPT me acht bibliotheekkeuzes, maar geen van hen vermeldde de PHP-taal waarin ik van plan was te coderen. Dus hier is de volgende prompt:

Kan ik van die 8 bibliotheken er een gebruiken met PHP?

Het leverde drie bibliotheken op, maar ik wist niet zeker wat ze allemaal deden. Dus nog een vraag:

Wat is het verschil tussen Sumy, Gensim en NLTK?

Ik wist het nog steeds niet zeker, dus verduidelijkte ik mijn gebruiksplan en vroeg toen:

Welke bibliotheek zou beter werken als ik samenvattingen van nieuwsartikelen op webpagina's wil maken?

Het antwoord dat ik kreeg was duidelijk en veelbelovend: "Sumy is specifiek ontworpen voor tekstsamenvatting, wat de taak is om een samenvatting te maken die de belangrijkste informatie uit een stuk tekst vastlegt." Dus nu was het tijd om te zien wat er bij kwam kijken om het met PHP te gebruiken. Ik stelde mijn laatste vraag voor dit deel van het project:

Kun je uitleggen hoe je Sumy vanuit PHP gebruikt?

Voel je vrij om mee te spelen op je computer en deze prompts in je instantie van ChatGPT te plakken. Merk op dat ik in stap 1 heb besloten voor welke programmamodule ik hulp zou krijgen. Vervolgens had ik in deze stap een gesprek met ChatGPT om te beslissen welke bibliotheek ik zou gebruiken en hoe ik deze in mijn project zou integreren.

Dat lijkt misschien niet op programmeren, maar ik verzeker je dat het dat wel is. Programmeren is niet alleen regels code op een pagina blazen. Programmeren is uitzoeken hoe u alle verschillende bronnen en systemen kunt integreren en hoe u kunt praten met alle verschillende componenten van uw oplossing. Hier heeft ChatGPT me geholpen met die integratieanalyse.

Overigens was ik benieuwd of Google's Bard op dezelfde manier zou kunnen helpen. Bard kan eigenlijk geen code schrijven, maar het gaf wel wat extra inzicht in het planningsaspect van programmeren via de reacties van ChatGPT. Aarzel dus niet om meerdere tools te gebruiken om te trianguleren op de antwoorden die u wilt. Hier is dat verhaal: Bard vs. ChatGPT: kan Bard je helpen met coderen? Sinds ik dat artikel schreef, heeft Google enkele codeermogelijkheden aan Bard toegevoegd, maar die zijn niet zo geweldig. Je kunt er hier over lezen: Ik heb de nieuwe codeervaardigheden van Google Bard getest. Het ging niet goed.

Codering is de volgende.

3. Vraag ChatGPT om voorbeeldcode te schrijven

Oké, laten we hier even pauzeren. Dit artikel is getiteld "ChatGPT gebruiken om code te schrijven." En het zal! Maar we vragen ChatGPT echt om voorbeeldcode te schrijven. Wachten. Wat?

Ook: Wat is GPT-4? Hier is alles wat u moet weten

Laten we duidelijk zijn. Tenzij je een heel kleine functie schrijft (zoals de regelsorteerder/randomizer die ChatGPT voor mijn vrouw schreef), zal ChatGPT je definitieve code niet kunnen schrijven. Ten eerste zul je het moeten onderhouden. ChatGPT is verschrikkelijk in het wijzigen van reeds geschreven code. Verschrikkelijk, als in, het doet het niet. Dus om nieuwe code te krijgen, moet je ChatGPT vragen om iets nieuws te genereren. Zoals ik eerder ontdekte, kan ChatGPT, zelfs als uw prompt vrijwel identiek is, op zeer onverwachte manieren veranderen wat het u geeft.

Dus, bottom line: ChatGPT kan uw code niet onderhouden of zelfs maar aanpassen.

Dat betekent dat je het zelf moet doen. Zoals we weten, is de eerste versie van een stuk code zelden de definitieve code. Dus zelfs als je zou verwachten dat ChatGPT de definitieve code genereert, zou het echt een startpunt zijn, een waar je het moet voltooien, integreren in je grotere project, testen, verfijnen, debuggen, enzovoort. .

Ook: ik heb ChatGPT gevraagd om een korte Star Trek-aflevering te schrijven. Het is eigenlijk gelukt

Maar dat betekent niet dat de voorbeeldcode waardeloos is. Verre van dat. Laten we eens kijken naar een prompt die ik heb geschreven op basis van het project dat ik eerder heb beschreven. Hier is het eerste deel:

Met een PHP-functie genaamd summary_article.

Als input zal summier_article een URL doorgeven naar een artikel op een nieuwsgerelateerde site zoals ZDNET.com of Reuters.com.

Ik vertel ChatGPT de programmeertaal die het moet gebruiken. Ik vertel het ook de invoer, maar terwijl ik dit doe, geef ik twee sites als voorbeelden om ChatGPT te helpen de stijl van het artikel te begrijpen. Eerlijk gezegd weet ik niet zeker of ChatGPT dat stukje begeleiding niet heeft genegeerd. Vervolgens zal ik het vertellen hoe het grootste deel van het werk moet worden gedaan:

Haal binnen de samenvatting_artikel de inhoud van de webpagina op via de opgegeven URL. Gebruik de bibliotheek Sumy vanuit PHP en alle andere benodigde bibliotheken, extraheer de hoofdtekst van het artikel, negeer eventuele advertenties of ingesloten materialen, en vat het samen in ongeveer 50 woorden. Zorg ervoor dat de samenvatting uit volledige zinnen bestaat. U kunt indien nodig boven de 50 woorden gaan om de laatste zin af te maken.

Dit lijkt erg op hoe ik een werknemer zou instrueren. Ik zou willen dat die persoon weet dat ze niet alleen beperkt waren tot Sumy. Als ze een andere tool nodig hadden, wilde ik dat ze die gebruikten.

Ik heb ook een geschat aantal woorden opgegeven om grenzen te stellen aan wat ik als samenvatting wilde. Een latere versie van de routine kan dat nummer als parameter gebruiken. Ik eindigde toen met te zeggen wat ik als resultaat wilde:

Zodra de verwerking is voltooid, codeert u summier_article zodat de samenvatting in platte tekst wordt geretourneerd.

De resulterende code is vrij eenvoudig. ChatGPT deed een beroep op een andere bibliotheek (Goose) om de inhoud van het artikel op te halen. Het gaf dat vervolgens door aan Summy met een limiet van 50 woorden en gaf het resultaat terug. Dat is het. Maar als de basis eenmaal is geschreven, is het een kwestie van programmeren om terug te gaan en tweaks toe te voegen, aan te passen wat aan de twee bibliotheken wordt doorgegeven en de resultaten te leveren.afbeelding2.png

Een interessant punt van aandacht. ChatGPT heeft een voorbeeldaanroep gemaakt naar de routine die het heeft geschreven, met behulp van een URL van na 2021 (wanneer de dataset van ChatGPT eindigt).

Ik heb die URL gecontroleerd op zowel de site van Reuters als de Wayback Machine, en hij bestaat niet. ChatGPT heeft het net verzonnen.

Veelgestelde vragen

Vervangt ChatGPT programmeurs?

Nu niet - of in ieder geval - nog niet. ChatGPT programmeert op het niveau van een getalenteerde eerstejaarsstudent programmeren, maar is lui (zoals die eerstejaarsstudent). Het zou de behoefte aan beginnende programmeurs kunnen verminderen, maar op het huidige niveau denk ik dat het het leven van beginnende programmeurs (en zelfs programmeurs met meer ervaring) alleen maar gemakkelijker zal maken om code te schrijven en informatie op te zoeken. Het bespaart zeker tijd, maar er zijn maar weinig programmeerprojecten die het alleen kan doen - tenminste nu. 2030? Wie weet.

Hoe krijg ik coderingsantwoorden in ChatGPT?

Vraag het maar. U zag hierboven hoe ik een interactieve discussiedialoog gebruikte om de antwoorden die ik wilde te verfijnen. Als je met ChatGPT werkt, verwacht dan niet dat één vraag op magische wijze al je werk voor je doet. Maar gebruik ChatGPT als een helper en hulpbron, en het zal u veel zeer nuttige informatie geven. Test die informatie natuurlijk, want, zoals John Schulman, een mede-oprichter van OpenAI, zegt: "Onze grootste zorg was feitelijkheid, omdat het model graag dingen verzint."

Als ik ChatGPT gebruik om mijn code te schrijven, wie is dan de eigenaar?

Het blijkt dat er nog niet veel jurisprudentie is om deze vraag definitief te beantwoorden. De VS, Canada en het VK vereisen dat iets waarop auteursrecht rust, door mensenhanden is gemaakt, dus code die door een AI-tool is gegenereerd, is mogelijk niet auteursrechtelijk beschermd. Er zijn ook aansprakelijkheidskwesties op basis van waar de trainingscode vandaan komt en hoe de resulterende code wordt gebruikt. ZDNET heeft zich verdiept in dit onderwerp, sprak met juridische experts en produceerde de volgende drie artikelen. Als je je zorgen maakt over dit probleem (en als je AI gebruikt om te helpen met code, zou dat ook zo moeten zijn), raad ik je aan ze te lezen.

  • Van wie is de code? Als de AI van ChatGPT helpt bij het schrijven van uw app, is deze dan nog steeds van u?
  • Als u door AI gegenereerde code gebruikt, wat is dan uw aansprakelijkheidsrisico?
  • Een netelige vraag: wie is de eigenaar van code, afbeeldingen en verhalen gegenereerd door AI?

Welke programmeertalen kent ChatGPT?

De meesten van hen. Ik raakte erg op een zijspoor toen ik dit probeerde. Ik heb gangbare moderne talen getest, zoals PHP, Python, Java, Kotlin, Swift, C# en meer. Maar toen liet ik het code schrijven in obscure talen uit de donkere tijd, zoals COBOL, Fortran, Forth, LISP, ALGOL, RPG (de rapportprogrammagenerator, niet het rollenspel) en zelfs IBM/360-assembleertaal.

Als kers op de taart gaf ik het deze prompt:

Schrijf een reeks die 'Hello, world' weergeeft in knipperende ascii-lampjes op het voorpaneel van een PDP 8/e

De PDP 8/e was mijn allereerste computer, en ChatGPT gaf me eigenlijk instructies om een programma in te schakelen met behulp van schakelaars op het voorpaneel. Ik was onder de indruk, opgewekt en toch een beetje bang.

Wat is de bottom line? ChatGPT kan een zeer nuttig hulpmiddel zijn. Schrijf er alleen geen superkrachten aan toe. Nog.

Gerelateerde Artikelen

Bekijk meer >>

Ontgrendel de kracht van AI met HIX.AI!