Koding med KI

Programmering med AI

Kunstig intelligens (KI) har fundamentalt endret måten vi programmerer på. KI-agenter kan generere kode, optimalisere og til og med hjelpe til med feilsøking. Likevel er det noen begrensninger programmerere bør være klar over når de arbeider med KI.

Problemer med rekkefølge og duplisering

KI-agenter sliter med riktig rekkefølge i koden. De kan for eksempel plassere initialiseringer på slutten av en fil, noe som forårsaker kjøretidsfeil. I tillegg kan KI uten å nøle definere flere versjoner av samme klasse eller funksjon i et prosjekt, noe som fører til konflikter og forvirring.

En kodeplattform med minne og prosjektstruktur hjelper

En løsning på dette er å bruke KI-kodeplattformer som kan administrere minne og prosjektstrukturer. Dette bidrar til å opprettholde konsistens i komplekse prosjekter. Dessverre blir disse funksjonene ikke alltid brukt konsekvent. Dette kan føre til at KI mister oversikten over prosjektets sammenheng og introduserer uønskede duplikater eller feil avhengigheter under programmeringen.

De fleste KI-kodeplattformer fungerer med såkalte verktøy som det store språkmodellen (LLM) kan kalle på. Disse verktøyene er basert på en åpen standardprotokoll (MCP). Det er derfor mulig å koble en KI-kodeagent til en IDE som Visual Code. Eventuelt kan du sette opp en lokal LLM med Llama av Ollama og velg en MCP-server å integrere med. Modeller kan finnes på Hugging Face.

IDE-utvidelser

For bedre å administrere AI-generert kode, kan utviklere bruke IDE-utvidelser som overvåker kodenøyaktighet. Verktøy som linters, typesjekkere og avanserte kodeanalyse-verktøy bidrar til å oppdage og korrigere feil tidlig. De er et viktig supplement til AI-generert kode for å sikre kvalitet og stabilitet.

Feilkilder: API-kontekst

En av hovedårsakene til at AI-agenter fortsetter å gjenta feil, ligger i måten AI tolker API-er på. AI-modeller trenger kontekst og en tydelig rollebeskrivelse for å generere effektiv kode. Dette betyr at prompter må være komplette: de må ikke bare inneholde de funksjonelle kravene, men også eksplisitt angi forventet resultat og begrensninger. For å forenkle dette kan du lagre promptene i standardformat (MDC) og automatisk sende dem med til AI-en. Dette er spesielt nyttig for generiske programmeringsregler du følger, samt de funksjonelle og tekniske kravene og strukturen i prosjektet ditt.

Verktøy som FAISS

Produkter som FAISS og LangChain tilbyr løsninger for å hjelpe AI med å håndtere kontekst bedre. FAISS hjelper for eksempel med effektivt å søke og hente relevante kodebiter, mens LangChain hjelper til med å strukturere AI-generert kode og opprettholde kontekst innenfor et større prosjekt. Men også her kan du eventuelt sette opp dette lokalt selv med RAC-databaser.

Konklusjon: Nyttig, men ikke selvstendig

AI er et kraftig verktøy for programmerere og kan bidra til å akselerere utviklingsprosesser. Likevel er det ennå ikke i stand til å designe og bygge en mer kompleks kodebase uavhengig uten menneskelig tilsyn. Programmerere bør se på AI som en assistent som kan automatisere oppgaver og generere ideer, men som fortsatt trenger veiledning og korrigering for å oppnå et godt resultat.

Kontakt kontakt for å hjelpe til med å sette opp utviklingsmiljøet, for å hjelpe team med å få mest mulig ut av utviklingsmiljøet og bruke mer tid på kravspesifikasjon og design enn på feilsøking og kodeskriving.

 

Gerard

Gerard er aktiv som AI-konsulent og leder. Med lang erfaring fra store organisasjoner kan han svært raskt analysere et problem og jobbe mot en løsning. Kombinert med en økonomisk bakgrunn sikrer han forretningsmessig forsvarlige valg.

AIR (Kunstig Intelligens Robot)