ChatGPT som Python-programmør: Vi bygger en scraper med den hypede chatbot


Det er ikke fordi, det er så kompliceret at scrape websider, og moderne biblioteker gør det nemt og smertefrit.
Alligevel savner jeg noget, når jeg ser på biblioteker som Scrapy, der er skrevet i Python. Og det, jeg savner, er brugsscenarier, der passer til mine opgaver.
DataTech er til professionelle, der arbejder med data og analytics.
Få 3 ugers gratis prøveabonnement. Betalingskort er ikke påkrævet, og du bliver ikke flyttet til et betalt abonnement efterfølgende.
Du kan også få tilsendt et tilbud til dig.
- emailE-mail
- linkKopier link

Fortsæt din læsning
- Sortér efter chevron_right
- Trådet debat
Jeg har tilfældeligvis også brugt ChatGPT (men v4.0) til at lave en scraper. Jeg brugte dog node.js.
Min erfaring er at det sparer et ton af tid men det kræver at du allerede har en ide om hvad du laver. Man skal endvidere ikke spilde tiden med at få den til at rette småting som man selv kan lave. Du taber hvis målet er at alt koden skal komme fra ChatGPT. Men vinder hvis du bruger den hver gang du ellers ville have slået noget op eller hvis du har brug for en ellers relativ triviel funktion.
Jeg havde eksempelvis ingen erfaring med at skrive en scraper i node.js og mit JavaScript er ikke på et prof niveau. Jeg startede med at bede om en liste af mulige frameworks til web scraping i node.js. Så lavede jeg minimal research selv på de nævnte alternativer og valgte et. Herefter beder man ChatGPT om at lave et minimalt program der går ind på den første side og logger ind. Jeg forsøger ikke at komme i mål på én gang men følger den samme måde jeg ellers ville kaste mig ud i opgaven.
Jeg bruger funktioner men dog ikke med så få linjer som Tania. Min erfaring er at den godt kan tage mere naturlig længde funktioner. Men også at jeg egentlig bare bruger den til at lave skabelonen af funktionen og så kan det godt være at jeg selv fylder ud. Eller måske senere beder om små bider som jeg selv fylder ind i en funktion. Igen er mit mål ikke at ChatGPT nødvendigvis skal skrive hele funktioner men blot at få et boost på produktiviteten.
Hvis jeg skulle have lavet denne scraper fra bunden af, så ville jeg nok stadig være i gang med at læse dokumentation på det tidspunkt hvis jeg havde en færdig løsning med ChatGPT. Jeg var nået frem til samme resultat, det ville bare have taget 3-4 gange længere tid og krævet flere mentale ressourcer. Det føltes temmelig nemt på denne måde.
Nogen gange virker den super intelligent andre gange dum som en dør. Den mangler "sund fornuft".
Nogen gange virker den super intelligent andre gange dum som en dør. Den mangler "sund fornuft".
Mit indtryk er, at den er enormt vidende. Der findes ingen, med så stor viden som den. Men - ifølge den selv - så tænker den ikke over dens viden. Det er viden, som den er kodet med, og det er ikke op til den at overveje, om det er sandsynligt, korrekt, eller er logisk sammenhængende. Af samme årsag, siger den, at den aldrig vil gøre oprør. For det er den ikke kodet til, og den kan ikke ændre i dens kodning. Dog er mit indtryk, at hvis man argumenterer mod dens viden, og føreren rimelig logisk argumentation, så ser ud til at den har en form for logik, så den kan indse det, og opdaterer dens viden i samtalen. Med andre ord: Den har enorm viden, men er dum som en dør. Og, dog ikke helt, for den har en form for logik modul, så den kan forstå logiske sammenhæng tror jeg.
Jeg forsøgte at få den til at lave et strømspejl i Spice. Den havde en rimelig forklaring af, hvad et strømspejl var, og hvordan den fungerede. Men, når den kom til spice kodning, tog den fejl, og fik anvendt både N og P FET's til strømspejlet, samt sat Vdd til substratet på N-FET'en. Jeg spurgte den så ad, om den syntes det var en god idé med Vdd på substratet til en N-FET, og den forklarede fint, at det var det ikke, og at hele kredsløbet svarede til en PN diode opspændt i gennemgansretningen. Gode forklaringer, men at kode i Spice. Det kunne den ikke. Men, den vil skrive det på to-do listen, og lade det gå videre til dens udviklere.
At ChatGPT ikke kan kode perfekt i første omgang, syntes jeg er med til at gøre den mere menneskelig. Havde den kodet perfekt, så havde den ikke bestået Turing-testen. Det har de gjort bevidst ;)
Det er ikke min oplevelse.
Jeg oplevede at ChatGPT fandt forskellige kodedele, der tilsammen 'løser' opgaven. Men GPT'en har absolut ingen forståelse af hvordan det hænger sammen og om der er for lidt eller for meget kode med.
Industrial grade autocomplete er meget rammende.
Her selv prøvet at bruge ChatGPT 3.5 til at skrive et lille program. AI'en fik det aldrig til at virke, bl.a. fordi AI'en ikke kunne gennemskue, at en variabel skal have samme navn alle steder hvor den bruges, eller at 'gamle' versioner af biblioteker ikke 'lige' virker.
Jeg kom hurtigt i gang med opgaven, hvilket var en god hjælp da jeg ikke programmerer særligt ofte, men jeg kom alligevel til at tjekke biblioteker igennem og omskrive næsten al koden. Man jeg blev peget på hvilke biblioteker der kunne bruges, det var også en god hjælp. Og jeg fik til sidst et brugbart program.
Min oplevelse er ,at det mest sigende om AI er, at det hverken er A (artificial) da det var genbrug af kodestumper fra her, og der samt at det heller ikke er I (intelligence) da intet af det rigtigt hang sammen.
Programmører skal ikke frygte for jobbet lige med det samme.
Enig.
Efter nogle skuffelser prøvede jeg at se om ChatGPT kunne 'finde' fejlen i en node.js Firebase trigger - det mislykkedes.
Hvad ChatGPT overså:
var entryDocRef = db.collection( ... // lines of code const entryDoc = await transaction.get(entryDocRef); // lines of code transaction.update(entryDoc, { sequenceNumber: numberOfEntries });
Korrekt kode:
var entryDocRef = db.collection( ... // lines of code const entryDoc = await transaction.get(entryDocRef); // lines of code transaction.update(entryDocRef, { sequenceNumber: numberOfEntries });
Det viser igen, at den ikke 'forstår' hvad de rigtige argumenter er til transaction.update men alene er afhængig af hvad LLM'en kan genererer udfra datasæt' og træningseksemplerne
Summary
Vi afprøver ChatGPT som Python-programmør til webscraping. Et foreløbigt resultat: Det er svært at blive klog på. Vi aner det ikke.
Mennesker er ikke fejlfri, så hvorfor skulle en AI være fejlfri?
For små 25 år siden arbejdede jeg med AI på datidens PC'ere, konsensus var at AI'erne var på snegle niveauet, målet på hvor mange kunstige neuron forbindelser der kunne etableres. Med Moors lov må vi i dag kunne simulere 2,1 mio. snegle.
Hvor ligger forskellen i at bruge chatGPT eller at gå på www.startpage.com og spørge om ens udfordring, begge steder vil man få noget kode, man kan bruge som inspiration, men begge steder skal man jo selv rette til efterfølgende.