-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Lagt inn workshop-oppgavene som sider i jekyll
- Loading branch information
1 parent
c617894
commit bd2fdac
Showing
12 changed files
with
540 additions
and
107 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -20,8 +20,9 @@ | |
|
||
title: Kantega AI-dev Workshop | ||
email: [email protected] | ||
description: >- # this means to ignore newlines until "baseurl:" | ||
Denne workshopen dekker de praktiske delene med å benytte store språkmodeller i utviklingsarbeid. | ||
description: | ||
#>- # this means to ignore newlines until "baseurl:" | ||
#Denne workshopen dekker de praktiske delene med å benytte store språkmodeller i utviklingsarbeid. | ||
#baseurl: "ai-dev-workshop/" # the subpath of your site, e.g. /blog | ||
#url: "https://kantega.github.io" # the base hostname & protocol for your site, e.g. http://example.com | ||
#twitter_username: -- | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
--- | ||
layout: default | ||
--- | ||
|
||
heihei codebase | ||
|
||
[< Tilbake](../) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
--- | ||
layout: default | ||
--- | ||
|
||
Disse oppgavene er ganske åpne, og kan gjennomføres på mange måter. | ||
|
||
Poenget med denne workshop'en er ikke å faktisk løse oppgavene - men å øve på hvordan språkmodeller | ||
kan passe inn i en eksisterende arbeidsflyt. | ||
|
||
Dersom du ikke er vant til å benytte språkmodeller, så 'tving' deg selv til å gjøre så mye som mulig | ||
med modellen. Da vil du erfare hva som fungerer godt, og hva som fungerer dårlig. | ||
|
||
Dette er bare forslag på oppgaver, og kan gjøres i hvilken som helst rekkefølge, og man kan | ||
gjerne blande konsepter fra flere av oppgavene. | ||
|
||
## Ferdige oppgaver | ||
### Utvikling | ||
- [ASCII-kunst](./exercises/ASCII-kunst.md) | ||
- [Discord-bot](./exercises/Discord-bot.md) | ||
- [JSON omstrukturering](./exercises/JSON-omstrukturere.md) | ||
- [SQL Opprette tabeller](./exercises/SQL-opprett-tabeller.md) | ||
- [Webapp komponent](./exercises/Webapp-komponent.md) | ||
|
||
### Diverse oppgaveforslag | ||
- [Diverse oppgaver](./exercises/Diverse-oppgaveforslag.md) | ||
|
||
[< Tilbake](../) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
--- | ||
layout: default | ||
--- | ||
|
||
# ASCII-kunst | ||
|
||
## Generer ASCII-kunst fra en bildefil | ||
|
||
Velg et programmeringsspråk, gjerne et du ikke kan særlig godt, men ønsker å lære. | ||
Helst ikke for obskurt, men noe som Go, Rust, Kotlin, eller Haskell kan egne seg. | ||
|
||
Oppgaven går ut på å, ved hjelp av LLM (ChatGPT, og kanskje Copilot, om du har tilgang til det), | ||
å skrive et program fra scratch, som tar inn en bildefil, og genererer ASCII-kunst basert på dette. | ||
|
||
Poenget her er å få med seg oppsett av et nytt språk (installasjon og miljø), | ||
installering og bruk av biblioteker (antakeligvis må man bruke et bibliotek for å håndtere bildefiler), | ||
lesing fra og skriving til disk, og en kjent problemstilling rundt det å algoritmisk | ||
produsere ASCII-kunst fra en bildefil. | ||
|
||
Gjerne begynn med å få en høynivå algoritme, hvor du beskriver hvert steg du må | ||
gjennom for å oppnå dette, og så bryt det ned i mindre problemer som du kan | ||
få generert kode til. | ||
|
||
Om du støter på problemer underveis, spør LLM'en. Kopier inn feilen du får, og beskriv | ||
problemet, og gjerne konteksten rundt problemet (hvilken prosjekt-struktur du har, hvilket miljø, etc). | ||
|
||
Vær obs på at LLM'en kan fortsatt hallusinere, og for eksempel foreslå klasser, funksjoner, | ||
og metoder som ikke finnes i språket eller biblioteket som blir brukt. | ||
|
||
[< Tilbake](../exercises.md) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
--- | ||
layout: default | ||
--- | ||
|
||
# Discord-bot | ||
|
||
## Skriv en Discord-bot som man kan spille spill med | ||
|
||
Skriv en Discord-chatbot som man kan spille enkle spill med. | ||
Start med å opprette en Discord-server (det er kjempelett, bare spør ChatGPT!), og deretter en bot som svarer når man skriver. | ||
|
||
Deretter gjør den mer avansert, du kan gjerne begynne med noe enkelt som stein-saks-papir, | ||
men seinere noe mer avansert, som tripp-trapp-tresko (bondesjakk / tic-tac-toe). | ||
Vær kreativ, og gjerne drøm stort. | ||
Kan du for eksempel lage en trivia-bot, som henter spørsmål og svar fra et eksternt API? | ||
|
||
Det finnes en del funksjonalitet rundt Discord-bot'er, så gjerne gjør noe spenstig. | ||
|
||
Målet er å se hvordan LLM'en forholder seg til eksterne biblioteker og programvare. | ||
Discord-API'et (og biblioteker rundt) har endret seg en del, og det finnes en haug med repoer | ||
som løser kodeproblem på mange forskjellige måter. | ||
|
||
Hvordan håndterer LLM'en dette? Opprettholder den en konsekvent kodestil? Hallusinerer den ofte? | ||
|
||
[< Tilbake](../exercises.md) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,121 @@ | ||
--- | ||
layout: default | ||
--- | ||
|
||
# Potensielle oppgaver - Utvikling | ||
|
||
### Utvide en eksisterende kodebase | ||
|
||
Ta en eksisterende kodebase som du har jobbet på (gitt, selvfølgelig, at det ikke bryter noen lisens eller noe lovverk å bruke det i denne sammenhengen), | ||
eventuelt last ned et open source prosjekt som du enten er kjent med eller som er smått nok til at du lett kan forstå det. | ||
|
||
Utvid deretter denne kodebasen med noe som mangler, og bruk LLM'en hele veien. | ||
Noen eksempler på konkrete oppgaver: | ||
|
||
- Få det til å kjøre, uten å lese README | ||
- Utvide modeller i kodebasen, med ekstra felter | ||
- Hente data fra et eksternt API | ||
- Skrive flere tester | ||
- Skrive det om til et annet språk | ||
- Lage et API som tilgjengeliggjør data | ||
|
||
### Håndtere JSON | ||
|
||
- Ta en JSON-modell, generer en Java-klasse basert på denne (DTO, REST-kontroller, DAO) - | ||
kan utvides til å gå fra "konsumer JSON via en POST mot et REST-endepunkt, og insert det i en database" | ||
- Ta en liste av JSON'er, som har en property som er en enum (`type: 'IMAGE'`) - omstrukturer denne til et Map som nøkler på enum-verdien: | ||
|
||
```javascript | ||
const originalArray = [ | ||
{ title: 'dog.jpg', type: 'IMAGE' }, | ||
{ title: 'cat.mp4', type: 'VIDEO' }, | ||
{ title: 'fish.jpg', type: 'IMAGE' }, | ||
/* etc, etc... */ | ||
]; | ||
|
||
const expectedMap = { | ||
'IMAGE': [ | ||
{ title: 'dog.jpg' }, | ||
{ title: 'fish.jpg' } | ||
], | ||
'VIDEO': [ | ||
{ title: 'cat.mp4' } | ||
] | ||
}; | ||
``` | ||
|
||
### SQL | ||
|
||
- Denormaliser en tabellstruktur | ||
- Konstruer en rekke SQL-spørringer som oppretter tabeller og inserter data | ||
|
||
### Algoritmer | ||
|
||
- Forslag til forskjellige algoritmer for å løse et konkret problem, og trade-offs med de forskjellige algoritmene - | ||
en konkret oppgave her kan være å traversere en trestruktur, og ta med relevante noder videre | ||
- Optimaliser en funksjon / kodeblokk | ||
|
||
### Generere kode | ||
|
||
- Hvordan lese en fil | ||
- Hvordan gjøre API-kall | ||
- Hvordan lese / skrive til en database | ||
- Hvordan implementere en algoritme | ||
- Generer en nettside | ||
- Generer en komponent til en web-applikasjon | ||
- Formatter en rekke data | ||
- Oversett fra et språk til et annet | ||
- Parse et gitt filformat, få ut spesifisert informasjon, med en rekke forutsetninger | ||
|
||
### Tester | ||
|
||
- Generer tester basert på eksisterende kode | ||
- Generer test-data | ||
|
||
### Dokumentasjon | ||
|
||
- Forklar hva et stykke kode gjør | ||
- Finn et godt navn for en metode | ||
- Bruke LLM'er som en 'live StackOverflow' - be om å forklare klasser og funksjoner i rammeverk / biblioteker | ||
- Finskriving av tekst til issue-trackers (beskrivelsen til en Jira-oppgave, for eksempel) | ||
- Generere dokumentasjon til et API | ||
|
||
### Fagstoff | ||
|
||
- Forklare terminologi, konsepter, rammeverk, biblioteker, språk; foreslå læringskilder - | ||
her har man muligheten til å ha en dialog med LLM'en, og spisse inn på begreper man sliter med | ||
- Best practices og design patterns - forslag og forklaringer | ||
- Valg av teknologi til et prosjekt (språk, rammeverk, biblioteker, etc) | ||
- Arkitekturelle beslutninger | ||
- Foreslå et roadmap for å lære en gitt teknologi | ||
|
||
### Review | ||
|
||
- Be LLM om å gjøre code review av et stykke kode, foreslå forbedringer | ||
|
||
### Integrasjoner i IDE'er | ||
|
||
- Praktisk bruk av Copilot i IntelliJ / VSCode | ||
- Plugins | ||
|
||
### Feilsøking | ||
|
||
- Hva er galt med denne koden her? | ||
- Debugging, forklar problemet, få forslag til hva det kan være og hvordan løse det | ||
|
||
### Sikkerhet | ||
|
||
- Finn potensielle sikkerhetshull i en gitt kodeblokk | ||
|
||
|
||
## Potensielle oppgaver - Drift | ||
|
||
### Automasjon | ||
|
||
Man kan finne konkrete deler av en arbeidsflyt som potensielt kan automatiseres, og forsøke å benytte språkmodellen til å | ||
avdekke hva som potensielt kan automatiseres, og hvordan det rent praktisk kan automatiseres. | ||
|
||
For eksempel om man i en fly det gjøres en del manuell konfigurasjon, med flere steg, så kan man prøve å få språkmodellen til å | ||
skrive et script eller utforme en prosedyre slik at man ikke behøver alle de manuelle stegene. | ||
|
||
[< Tilbake](../exercises.md) |
Oops, something went wrong.