Praktische coderingsvragen beantwoord door GPT3: is het klaar voor de prime time?

Je kunt GPT3 gemakkelijk zelf proberen, registreer je gewoon voor een OpenAI account, en je krijgt (op het moment dat ik dit schrijf) 18 USD krediet. Ga naar de volgende link:

https://platform.openai.com/playground

Hier kun je je vraag invoeren en indienen. GPT3 zal antwoorden in hetzelfde tekstvak.

Er zijn drie parameters van direct belang:

  • Model - Ik stel voor om deze advertentie tekst-davinci-003 te laten staan. U kunt ook experimenteren met codex, code-davinci-002
  • Temperatuur - 0,7 is de waarde die ik gewoonlijk gebruik (controleert de willekeur van de respons / hoe "creatief" GPT3 wordt).
  • Maximale lengte - hoeveel tokens moet het model maximaal genereren? Let op, het volledige aantal tokens dat u invoert telt ook mee voor de technische limiet - momenteel 4000 tokens voor tekst-davinci-003.

Tokens zijn trouwens de basis "valuta" eenheid, je kunt ze zien als woorden of delen van woorden. Korte en gewone Engelse woorden zijn meestal één token, terwijl langere woorden worden opgesplitst in meerdere tokens.

GPT3 gebruiken om uw codering te versnellen

Elke ontwikkelaar weet dat veel van het ontwikkelen bestaat uit het zoeken naar bibliotheken, lezen hoe API's te gebruiken, en hoe te werken met verschillende objecten.

Ik ben GPT3 gaan gebruiken als hulp bij het coderen van JavaScript, en heb het ook geprobeerd op Crystal Lang.

(delen van PiCockpit zijn gecodeerd in Crystal Lang - omdat ik een fan ben van de taal Ruby, en Crystal lang streeft naar een Ruby-achtige syntaxis, en een C-achtige prestatie).

Het is bij verschillende gelegenheden nuttig geweest, bijvoorbeeld om vragen op te lossen zoals of ik spaties moet opnemen in de JSON syntax tussen sleutels en waarden. Of hoe "require" te converteren naar "import" syntaxis voor JavaScript.

Hij is goed in het beantwoorden van vragen, en zal zelden zeggen dat hij de vraag niet kan beantwoorden. Het belangrijkste om in gedachten te houden is dat dit een statistische machine is.

En soms lijken de antwoorden plausibel, maar vallen ze uit elkaar als je de code uitprobeert.

JavaScript GPT3 hulpvraag mislukt voorbeeld

Voor een project moest ik e-mailadressen valideren met node.js. GPT3 stelde de "emailvalidator" bibliotheek voor, en gaf eenvoudige voorbeeldcode. Toen ik het probeerde uit te voeren, mislukte het.

Ik heb toen de documentatie van de "emailvalidator" bibliotheek bekeken, die inderdaad bestaat. Het blijkt, dat deze bibliotheek (naar ik begrijp) Redis vereist, en een meer gecompliceerde setup in het algemeen. Overkill voor mijn eenvoudige toepassing. GPT3 heeft me daar niet op gewezen in zijn voorbeeldcode.

De gelijknamige "email-validator" npm-bibliotheek doet echter precies wat ik nodig heb.

Crystal lang GPT3 query succesvoorbeeld

crystal lang try except blok geef code voorbeeld

begin
  #-code die een uitzondering kan opleveren
rescue SomeError => e
  # code om de uitzondering af te handelen
anders
  #-code die moet worden uitgevoerd indien er geen uitzonderingen zijn gemaakt
verzekeren
  #-code wordt altijd uitgevoerd, ongeacht of er uitzonderingen zijn gemaakt of niet
einde

Goed om je geheugen op te frissen - je hoeft niet te googelen, op een pagina te klikken, door de documentatie te scrollen - je hebt het antwoord binnen handbereik. Hier en daar een paar seconden besparen scheelt elke dag minuten, en dagen en misschien zelfs weken per jaar ontwikkeling.

Als u de antwoorden in een beknoptere vorm krijgt, kunt u uw gedachtenstroom behouden - heel belangrijk bij het programmeren!

Crystal lang GPT3 help storing voorbeeld 1

Crystal lang, Kemal. Hoe kan ik een pad uitsluiten van before_all?

Je kunt een pad uitsluiten van de before_all haak door de :except optie te gebruiken. Deze optie neemt een array van paden als argument en sluit die paden uit van de before_all haak. Om bijvoorbeeld het pad '/admin/' uit te sluiten van before_all, zou je before_all aanroepen met de volgende code:

before_all :except => ['/admin/'] do
  # Uw code hier
einde

Voorzichtig: de bovenstaande code werkt niet!

Kemal is een router voor Crystal Lang, je kunt je voorstellen dat het iets soortgelijks is als Sinatra, of om uit te drukken.

De code ziet er enigszins plausibel uit, ik heb het geprobeerd en het compileert niet. Vervolgens heb ik de Kemal documentatie doorgenomen, en de broncode, en KemaL's openstaande problemen. Geen vermelding van deze mythische :behalve sleutel.

GPT3 heeft dit net verzonnen.

Hier is de juiste manier om een uitzondering op before_all in Kemal te coderen:

before_all do |env|
  next if env.request.path == "/admin/"
  # Uw code hier
einde

Ik vond deze informatie in een kemal.cr ticket. Deze code is door mij getest en compileert daadwerkelijk.

Crystal lang GPT3 help storing voorbeeld 2

Ik moest ook de huidige tijd (UTC) omzetten naar een unix epoch.

crystal lang: hoe kan ik Time.utc omzetten naar de unix timestamp?

Je kunt de methode Time#to_i gebruiken om een Time-object te converteren naar een Unix-tijdstempel.

time = Time.utc(2020, 5, 15, 10, 10, 0)
unix_timestamp = time.to_i # 1589492200

Voorzichtig: De bovenstaande code doet niet compileren!

Hoewel het bestaan van een dergelijke methode aannemelijk zou kunnen zijn, bestaat een dergelijke methode niet in de Crystal Lang API voor tijd.

De juiste code is:

unix_timestamp = Time.utc.to_unix

Conclusie: GPT3 is nuttig, maar test zijn output!

GPT3 is inderdaad nuttig bij het oplossen van veel voorkomende programmeervragen. Het kan bibliotheken voorstellen, vragen beantwoorden over syntaxis, best practices en nog veel meer.

Behandel het als een ervaren programmeur, die dingen uit het geheugen citeert, en af en toe dingen door elkaar haalt of verzint. Dat is de aard van statistische antwoorden - aangezien wij mensen, als API-ontwikkelaars, de neiging hebben het "verwachte ding" te doen in code (wat andere programmeurs zullen verwachten in de API's die zij consumeren) - zullen deze antwoorden vaak werken.

Ook heeft GPT3, tijdens het leren in het enorme corpus van online gegevens, VEEL code en codevoorbeelden gezien. Het heeft veel geldige patronen geleerd.

Net als een mens die uit zijn hoofd moet citeren, in plaats van dingen op te zoeken of te weten waar ze op te zoeken, zal GPT3 af en toe uitglijders maken.

Maar het bespaart u toch tijd, en wijst u vaak in de juiste richting.

GPT3, ChatGPT en OpenAI API consulting

Wij bieden adviesdiensten voor deze AI API's - van business use cases tot volledige kant-en-klare oplossingen. Neem vandaag nog contact op om uw behoeften te bespreken en voor een gratis eerste gesprek over GPT3, ChatGPT en andere moderne AI API's.!