En fornøyd lærer

Hvordan sette opp en kopi av KI i Randabergskolen

Vi liker å dele! Hele prosjektet med KI i Randabergskolen er satt opp med utgangspunkt i en Creative Commons-lisens, mer nøyaktig en Creative Commons BY-NC-SA. Det betyr at du har lov til å kopiere alt du finner her, bruke det til hva du vil og endre på hva du vil til hva du vil. Likevel er det tre ting du må passe på hvis du bruker noe av det vi har laget, og det er beskrevet på denne siden. Kortutgaven er at du må skrive hvor du har funnet det, at du deler det med samme lisens og at du ikke har lov til å bruke det kommersielt (altså legge det bak betaling).

Her kommer en steg-for-steg beskrivelse av hvordan du setter opp din egen kopi av nettstedet «KI i Randabergskolen». Jeg tar utgangspunkt i webhotellet hos Domeneshop, fordi jeg selv synes de har en enkel løsning for dette og jeg har testet at dette virker. Jeg har ingen forbindelser til firmaet Domeneshop. Det kan godt hende at andre webhotell-tilbud også fungerer fint, men det får du i så tilfelle finne ut av selv.

Gi lyd til odinos@randabergskolen.no om noe i oppskriften ikke virker slik det skal!

Opprette webhotell og WordPress hos Domeneshop

Gå til www.domeneshop.no, klikk på «Les mer» under «Web medium», og så «Bestill nå» under «Medium».

Hvis du ikke har et domene hos Domeneshop må du ordne det ved å klikke på «Bestill webhotell til nytt domene».

Nå må du finne et ledig domenenavn som du vil bruke til tjenesten du setter opp. Dette må du finne på selv. Husk at domene du kjøper her er et «grunndomene». Dette et navn som randabergskolen.no eller tenkemotoren.no, og så kan (må) du legge til et prefix før dette senere, som for eksempel ki.randabergskolen.no.

Klikk deg videre til du må «Velg tjenester». Her klikker du på «Webhotell Medium» til kr 29,-/mnd, så sant du ikke vet at du har bruk for noe annet.

Neste steg er å opprette en brukerkonto / et kundeforhold hos Domeneshop. De sender ut faktura, både via epost og EHF, så dette er enkelt å bruke i en kommune. Fyll ut aktuelle felter med de opplysningene som er rett for deg.

Deretter må du gjøre en hurtig WordPress-installasjon. Gå inn på webhotell-siden i Domeneshop. Lag en domeneadresse til nettstedet, om du ønsker noe annet enn www før domenenavnet ditt. Opprett så én MySQL-database. Viktig – Du må også endre PHP fra 8.2 til 8.1. Nå kan du gjennomføre en hurtiginstallasjon av WordPress (som er et egen «knapp» på webhotell-siden), og så gå inn i WordPress-installasjonen du nettopp har laget. Vel inne i admin-konsollet i WordPress må du gå til menyen «Utvidelser» og installere utvidelsen fra WPvivid som heter «Migration, Backup, Staging – WPvivid». Etter at du har installert den må den også aktiveres.

Laste inn en kopi av KI i Randabergskolen i WordPress

Last ned denne zip-filen, som er en kopi av KI i Randabergskolen – Lenke til zip-fil

Gå inn i menyen «WPvivid Backup» og «Backup & Restore». Det velger du fanen «Upload» og laster opp zip-filen du nettopp hentet. Etter at du har valgt filen til opplasting må du i tillegg trykke på knappen «Upload». Så velger du fanen «Backups», og der skal filen du nettopp lastet opp ligge klar. Da trykker du på «Restore», og så går resten av seg selv.

Etter at du har lastet opp kopien av KI i Randabergskolen har nettstedet ditt fått en ny adminbruker som heter admin og den har passordet allelikerfisk. Det trenger du å skrive inn for å komme til selve nettsiden igjen.

Det er heller ingen meny for å logge på selve admin-konsollet til nettstedet, så må du selv skrive inn lenken «www.nettstedetditt.no/wp-admin» for å komme til siden hvor du kan logge inn. Brukernavnet er som nevnt admin og passordet er allelikerfisk, og ja – du er nødt til å endre det med en gang!

Nettstedet er også beskyttet med en utvidelse som gjør at alle må skrive et kodeord for å komme til nettsiden, og det kodeordet er allelikerfisk. Dette må du selv endre i den aktuelle utvidelsen.

Gratisutgaven av utvidelsen AI Engine følger med kopien. Jeg anbefaler at du kjøper Pro-utgaven av AI Engine. Da kan du lage KI-skjemaene jeg blant annet bruker i «Tekstverksted» og «Det høflige svaret». Disse følger med i kopien av KI i Randabergskolen, men vil ikke virke uten at du har Pro-utgaven av AI Engine.

Opprette konto hos OpenAI

Gå til https://platform.openai.com/ og velg «Sign up». Her må du registrere e-post, mobiltelefon og et VISA-kort som betalingsmetode.

Når du er ferdig med registeringen går du til siden «API keys». Velg «Create new secret key» og så må du lagre den koden du får se der, fordi du trenger den senere i denne oppskriften. Du får aldri se den igjen! Det er ikke farlig om du glemmer den, fordi du kan enkelt lage nye nøkler (og slette den du har glemt).

Du må nå betale med forhåndsbetaling hos OpenAI. Da legger du inn penger du bruker til tekstgenerering. Du kan sette opp automatisk fornyelse av hvor mye penger som skal innbetales når du bruker opp ressursene du har kjøpt.

Det er mulig å få en KI-konto hos Microsoft også i deres Azure OpenAI, men det er noe kommunen sentralt må gjøre for dere i skolen. Det er mer tungvint og krever mer arbeid, men da er det mulig å få betale bruk av AI-tjenestene via faktura til kommunen. Denne prosessen beskriver jeg ikke her, fordi dette vil variere fra kommune til kommune.

Koble opp WordPress til OpenAI

Med API-nøkkelen klar går du tilbake til WordPress og Meow Apps / AI Engine. Gå inn i menyen «Meow Apps» og «AI Engine». Inne i «AI Engine» velger du fanen «Settings» legger du inn API-nøkkelen til OpenAI. Innstillingene i «AI Engine» skal være riktig satt opp i forhold til hva du trenger, så om du endrer ting gjør du det på eget ansvar ;-). Pass på at du ikke skrur på «Statistics» under fanen «Dashboard», fordi da begynner systemet å logge aktivitet som brukerne gjør i praterobotene.

Da er du klar!

Du har nå en hel kopi med chatboter og alt fra KI i Randabergskolen. Resten er opp til deg!

Det er mye du kan gjøre og/eller lære om WordPress og AI Engine-utvidelsen. Dette handler om å sette opp pålogging med FEIDE i WordPress, koble til embedding vektordatabaser i AI Engine, lage mer avanserte skjema og koble på flere andre tjenester mot AI Engine-utvidelsen. Dette kommer jeg ikke til å skrive om her. Noe må du finne ut selv 😉

…forresten, hvis du ruller nedover kommer det en oppskrift om hvordan du setter opp tjenesten med FEIDE.


Ting som kan være kjekt å vite

Når du oppdaterer utvidelsen «AI Engine»

Av og til innføres det nye muligheter når AI Engine oppdateres og da kan det hende at du må gjøre en jobb i fanen «Settings» og «Chatbots» i «AI Engine». Hvis du har kjøpt Pro-lisensen av «AI Engine» kan det også hende at sider med Forms kommer med meldingen at noe er galt, men det ordnes med at du klikker på knappen som skal ordne det (alt står på skjermen på den siden det gjelder).

Anthropic i stedet for OpenAI?

Det er mulig å bruke Anthropic sine språkmodeller i stedet eller sammen med OpenAI sine. Da må du registrere en konto, sette opp betaling og få en API-nøkkel på URL-adressen https://www.anthropic.com/api

Om tall og penger

Mange spør om hva det koster å bruke løsningen. Vi har noen tall per november 2023 med gpt-35-turbo-modellen som vi mener er representative. Vi har regnet ut at det i snitt koster kr 0,12 per bruker per dag. Det vil si at om det er 1000 brukere innom chatbotene i løpet av dag, så koster det rundt kr 120 i AI-tjenester fra OpenAI. Hvis du setter opp tjenester med gpt-4-turbo må du regne med at det blir mellom 10-20 ganger dyrere, alt etter bruk. Vi har noen gjennomsnittstall for gpt-4 også, og der er det i snitt kr 0,80 per interaksjon med en gpt-4-chatbot. Hvis du bruker gpt-4-turbo har den halvert prisen ift gpt-4, så da blir det rundt kr 0,40 i snitt per melding. Jeg har skrevet mer om dette på www.iktogskole.no. Nå kan det godt hende at priser og tilbud endrer seg, så her må du følge med selv (stor sett blir det billigere!).

Hvor mange som kan jobbe med chatbotene samtidig er avhengig av to faktorer: 1) Hvor kraftig webtjeneren din er og 2) hvor mange tokens per minute (TPM) du får av OpenAI. Jeg er ikke erfart hva grensen for Domeneshop er, men jeg har registrert at de kjører webhotellene på rimelig kraftige tjenere. Dermed burde du få problemer med kapasiteten på TPM før du får problemer med webtjeneren.

TPM er en måleenhet på hvor mange stavelser i minuttet du får behandle i språkmodellene hos OpenAI. OpenAI har en glidende skala der du får tilgang til flere TPM etter hvert som du bruker tjenesten. En stor kommune vil raskt komme til Tier 4 og i praksis takle 10 000 samtidige brukere. Trenger du mer enn dette må du ta direkte kontakt med OpenAI for å se om du får tilgang til mer datakraft hos dem.

Har du en avtale med Microsoft om Azure OpenAI må du alltid kontakte dem direkte for å få mer enn «standard» TPM. Microsoft tilbyr TPM nok til en kommune med rundt 1500 elever, men store kommuner vil måtte be Microsoft om å få bruke med TPM.

Nå er det også mulig å bruke Anthropic sine språkmodeller med AI Engine, og de tilbyr egne avtaler til store organisasjoner.

Et vær-varsom-med-GDPR-tips

Nettstedet du har satt opp lagrer i utgangspunktet ingenting, men du kan skru på at det lagrer alt. Dette må du selv ta ansvar for, både med tanke på at tjenesten din ligger hos Domeneshop og at brukerne er informert om hva som da eventuelt lagres (og brukes av deg).

Du må også lese gjennom GDPR-sidene på nettstedet og forsikre deg om at informasjonen som står der stemmer med slik du har satt opp nettstedet ditt!

Ok da… Hvordan sette nettstedet opp med FEIDE

Oppsettet tar høyde for at du ikke skal lagre hver enkelt FEIDE-bruker som en bruker i WordPress. Med denne oppskriften blir det bare laget én bruker som alle som logger på via FEIDE blir koblet opp mot. Denne brukeren har ingen annen funksjon enn å være et filter for hvilke sider du får gå inn på i WordPress, og den knyttes ikke til noen av chatbotene.

Oppsett av tjeneste hos FEIDE

Du må nå være FEIDE-ansvarlig i kommunen for å fullføre det som står videre. Gå inn til https://kunde.feide.no og logg på som vertsorganisasjon. Velg menyen «Tjenester» og fanen «Leveres av [din] kommune». Klikk på «Opprett en ny Feide-tjeneste», gi den et navn du kjenner igjen og velg «Kun til internt bruk».

På den følgende skjermen «Om tjenesten» må du fylle ut noe og velge «Nei, tjenesten støtter ikke Single Logout (SLO)». Siden dette er en tjeneste kun til internt bruk er det ikke så farlig hva som står i feltene på denne siden.

Under fanen «Brukerinformasjon» holder det at du velger «Organisasjonstilhørighet (groups-org)», fordi ideen er at du ikke skal lagre brukernavn/e-post og lignende.

I fanen «Konfigurasjoner» velger du «Legg til OIDC-konfigurasjon». I de to første feltene må du fylle ut helt korrekt URL til nettstedet ditt, f.eks. https://ki.randabergskolen.no. Gi konfigurasjonen et navn du kjenner igjen. Begrens hvilke organisasjoner som kan logge inn på denne konfigurasjonen til din kommune. Under «Klienttype» velger du «Offentlig». Så kan du trykke på «Lagre» helt nede. Da får du vite Client ID og Client Secret til tjenesten. Disse to kodene trenger du å vite når du skal koble WordPress opp mot FEIDE-tjenesten du nettopp har laget.

Du er nå ferdig med oppsettet av tjenesten i FEIDE.

Oppsett av utvidelse i WordPress

Installer og aktiver utvidelsen «OAuth Single Sign On – SSO (OAuth Client)» av miniOrange, om den ikke ligger inn i kopien av nettstedet du har satt opp.

Gå til «miniOrange OAuth» i menyen i WordPress, som nå har dukket opp. Under «Configure OAuth» må du klikke på «Add New Application» og velge «Custom OAuth 2.0 app». (PS! Som du ser kan du velge mange andre systemer for å logge på også, som Azure og Google.) I oppsettet oppsettet som kommer nå må du fylle ut ulike felter med følgende informasjon:

må du fylle ut en del informasjon. Velg først OAuth Server «Custom OAuth» og gi den navnet «FEIDE» (bare for det). De videre feltene skal fylles ut slik:

App name: FEIDE (ja, det være FEIDE for at lenke skal virke slik den skal)
Client ID / Application ID: Henter du fra FEIDE-tjenesten.
Client Secret: Henter du fra FEIDE-tjenesten.
Scope: email profile openid userinfo-name userinfo-mobile groups-org
Authorization Endpoint: https://auth.dataporten.no/oauth/authorization
Token Endpoint: https://auth.dataporten.no/oauth/token
Userinfo Endpoint: https://groups-api.dataporten.no/groups/me/groups

Klikk på «Nect» og så på «Finish». Da må du logge på FEIDE for å hente opp den informasjonen som koblingen får tilgang til. Det er det samme hvilken bruker/konto du kobler FEIDE opp med. Vinduet du får opp nå viser hvilken informasjon WordPress kan hente ut fra FEIDE via påloggingen.

Gå til fanen «Attribute/Role Mapping» i OAuth-utvidelsen. Der kan du velge hvilket FEIDE-felt WordPress skal bruke for å lage brukere. Der skal du velge «eduPersonPrimaryAffiliation». Når brukere nå logger på via FEIDE kommer det automatisk til å bli laget to brukere. Den ene heter Employee (for ansatte) og den andre Student (for elever). Jeg har laget disse to brukerne for deg i kopien av nettstedet. Hvis du bruker et annet oppsett enn Identum sitt standard FEIDE-oppsett kan det hende at den lager andre brukere, men da ser du på de to jeg har laget som en mal for hvordan de andre må legges inn i systemet etter at de har logget på første gang.

Oppsett av utvidelsen User Access

Nå må du aktivere utvidelsen «Restrict User Access», som skal ligge i kopien du har lastet opp. Gå inn i menyen «User Access» som da har dukker opp i WordPress. Der skal det være to ferdige og aktiverte oppsett, som heter KI-elever og KI-ansatte.

Da har bare innloggede brukere lov til å gå inn på sidene med praterobotene.

En siste ting du må gjøre

Du må være logget inn som administrator, før du går til forsiden på nettstedet. Der kan du velge «Rediger nettsted» øverst til høyre og så velger du blyanten til høyre for der det står «Hjemme». Her må du gjøre to endringer. Klikk på de tre strekene øverst til høyre på skjermen. Da får du opp en oversikt over alle grupper/blokker som er på siden. Klikk på den som heter «Gruppe – Innlogging». Så må du se på sidevinduet til høyre etter overskriften «Visibility». Der må du velge «Logged-out» i stedet for «Logged-in» under User Role. Det betyr at denne blokken bare er synlig for brukere som ikke er logget inn. Så velger du gruppen «Gruppe – Prateroboter» helt til venstre, så endrer du synligheten fra «Public» til «Logged-in». Da blir denne blokken bare synlig for brukere som er logget inn.

Så klikker på på > tegnet til venstre for gruppen «Gruppe Prateroboter». Da får du se en gruppe som heter «Gruppe – Ansatte», som du klikker på. Under «Visibility» og User Role velger du her «Users» og brukerne «Admin» og «Ansatt». Da er det bare disse to brukerne som får se «Prateroboter til lærere».

Før du er helt ferdig må du markere teksten «Logg inn» midt på skjermen og legge inn URL-en fra «Sign in URL», som jeg ba deg huske lengre oppe i teksten. Så klikket du «Lagre» oppe til høyre – to ganger!

Pjuh! Ferdig! Nå kan du deaktivere utvidelsen «Passordbeskyttet», siden brukere nå må logge seg på via lenker «Logg inn» som peker til FEIDE-oppsettet du la inn i OAuth-utvidelsen.