For ikke lenge siden skrev vi om at Jupyter hadde lansert Jupyter AI, en Copilot-lignende kodeassistent for Python-utviklere.
Se - Python får sin egen "Copilot"
– 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.
Stor Python-endring: – Kjempespennende!
"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.
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.
– 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.