For ikke lenge siden skrev vi om at Jupyter hadde lansert Jupyter AI, en Copilot-lignende kodeassistent for Python-utviklere.
![image: Se - Python får sin egen "Copilot"](https://www.kode24.no/images/80007438.jpg?imageId=80007438&x=0&y=0&cropw=100&croph=100&width=154&height=97&compression=80 640w, https://www.kode24.no/images/80007438.jpg?imageId=80007438&x=0&y=0&cropw=100&croph=100&width=245&height=154&compression=80 1024w, https://www.kode24.no/images/80007438.jpg?imageId=80007438&x=0&y=0&cropw=100&croph=100&width=616&height=388&compression=70 320w)
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.
![image: Stor Python-endring: – Kjempespennende!](https://www.kode24.no/images/79998387.jpg?imageId=79998387&x=0&y=0&cropw=100&croph=100&width=154&height=103&compression=80 640w, https://www.kode24.no/images/79998387.jpg?imageId=79998387&x=0&y=0&cropw=100&croph=100&width=245&height=163&compression=80 1024w, https://www.kode24.no/images/79998387.jpg?imageId=79998387&x=0&y=0&cropw=100&croph=100&width=616&height=412&compression=70 320w)
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.
![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.](https://www.kode24.no/images/80085320.jpg?imageId=80085320&x=0&y=0&cropw=100&croph=100&width=630&height=101)
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.](https://www.kode24.no/images/80085315.jpg?imageId=80085315&x=0&y=0&cropw=100&croph=100&width=630&height=335)
– 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.
![image: Verdens største Python-discord: – Plutselig var vi 300.000!](https://www.kode24.no/images/80048003.jpg?imageId=80048003&x=0&y=0&cropw=100&croph=100&width=154&height=103&compression=80 640w, https://www.kode24.no/images/80048003.jpg?imageId=80048003&x=0&y=0&cropw=100&croph=100&width=245&height=164&compression=80 1024w, https://www.kode24.no/images/80048003.jpg?imageId=80048003&x=0&y=0&cropw=100&croph=100&width=616&height=412&compression=70 320w)