Lagde LabPilot: - Jeg satt åtte timer etter jobb i flere uker

Med hobbyprosjektet LabPilot, en slags Copilot for Jupyter, får du "kommentardrevet" utvikling i Python, forteller skaperen.

Aleksander Hansens LabPilot ser etter spesielle kommentarer i koden, og tar hensyn til disse når du ber LabPilot om å refaktorere. 📸: Privat
Aleksander Hansens LabPilot ser etter spesielle kommentarer i koden, og tar hensyn til disse når du ber LabPilot om å refaktorere. 📸: Privat Vis mer

For ikke lenge siden skrev vi om at Jupyter hadde lansert Jupyter AI, en Copilot-lignende kodeassistent for Python-utviklere.

– Min plugin til Jupyter er bedre! svarte utvikleren Aleksander Hansen bråkjekt da vi publiserte artikkelen på kode24s Facebook-side.

Det måtte naturligvis sjekkes opp.

Ble helt oppslukt av prosjektet

Aleksander Hansen jobber til daglig som backend-utvikler hos Aschehoug, der han jobber med kjernesystemene deres. Han forteller at han liker prosjekter der han kan "klø seg litt i hodet", og at det var bakgrunnen for at han satte igang med hobbyprosjektet LabPilot.

– De språkmodellene har virkelig satt igang fantasien min. Det er mye kult man kan få til med dem, sier Hansen til kode24.

LabPilot lar utviklere skrive spesielle kommentarer i Jupyter Notebook, som så blir sendt til OpenAI og gjort om til kode. I tillegg hjelper den deg også med å refaktorere, debugge eller forklare kode.

«Jeg satt åtte timer etter jobb i flere uker.»

Han satte igang med prosjektet i april i år, og det har gått mye tid.

– I starten var jeg helt oppslukt. Jeg satt åtte timer etter jobb i flere uker, så gikk det en periode der jeg ikke hadde tid, før jeg plukket det opp igjen.

Nå i siste versjon har Hansen også tatt i bruk LangChain til å kommunisere med språkmodellene (LLM-ene) som LabPilot er basert på. Den siste måneden har han jobbet 3-4 timer om dagen for å få ting ferdig.

– Men det føles ikke som jobb, det er bare gøy.

"Kommentardrevet" utvikling

Mens Jupyter AI baserer seg på blant annet "magiske kommandoer" som du setter inn i koden der du vil gjøre noe spesielt, har Hansen valgt å gå frem på en litt annen måte i LabPilot.

– Jeg bruker i stedet en "special comment". Så prompter jeg språkmodellen til å ta høyde for disse kommentarene når den skal refaktorere eller debugge.

Det å bruke kommentarer i stedet for magiske kommandoer, gjør det hele mye mer fleksibelt og sømløst, mener Hansen.

– Jeg kaller det for kommentardrevet utvikling.

Vi har både fått demonstrert løsningen og prøvd den ut selv, og fremgangsmåten er ganske enkel:

  • Først skriver du inn en kommentar i Python-koden din ved å skrive "#@", etterfulgt av det du vil at AI-en skal gjøre.
  • Trykk Refactor-knappen.
  • AI-en vil nå ta hensyn til disse spesielle kommentarene, og for eksempel sette inn kodesnutter hvis du ber den om det.
Ved å skrive #@ lager du en kommentar som er ment spesielt for AI-en.
Ved å skrive #@ lager du en kommentar som er ment spesielt for AI-en. Vis mer

Du kan også aktivere en celle du vil debugge, og så trykke Debug-knappen. I stedet for at den gamle koden overskrives av den rettede koden, vil du få det rettede forslaget i en egen celle.

– Jeg vil også ha en forklaring på hva som gikk galt. Da har jeg en annen chain som starter opp og som skriver forklaringen, sier Hansen.

Foreløpig som docker-image

Planen er å lansere LabPilot om ikke lenge som en plugin for Jupyter Lab.

Inntil videre er prosjektet tilgjengelig som et Docker-image du må bygge og kjøre. Undertegnede har prøvd ut dette på en Windows-PC med Ubuntu Linux i Virtual Box, der det fungerte veldig bra.

I tillegg til at LabPilot gir deg knapper for å refaktorere, debugge eller forklare kode, har den også en funksjon som kalles LabPilot Terminal.

LabPilot Terminal.
LabPilot Terminal. Vis mer

– Den baserer seg på AutoGPT. Det er en agent som kan iterere i en loop til det har nådd målet. Den har tilgang til shellet. Foreløpig er det en eksperimentell funksjon.

Med LabPilot Terminal kan du for eksempel skrive ls for å få en oppsummering av hvilke filer som finnes, og så kan du for eksempel be AI-en om å analysere innholdet i en CSV-fil, opprette en Jupyter-notebook, lese data fra filen og gjøre noe med disse.

– Planen er å vedlikeholde det som open source. Og så kommer det en pakke du kan installere uten å bruke Docker-containeren, sier Hansen.