[{"content":" Velkommen til min portfolio # Hej! Mit navn er Mie, og dette er min portfolio.\nHer dokumenterer jeg mit arbejde og min udvikling i undervisningen, hvor jeg lærer om webudvikling og design.\nBlog – min læring # På min blog skriver jeg om hver undervisningsgang.\nJeg fortæller:\nhvad vi har arbejdet med hvad jeg har lært mine egne refleksioner Klik på Blog i menuen for at læse mine indlæg.\nProjekter # Her vil jeg vise de projekter, jeg arbejder på i undervisningen.\nDet kan fx være:\nhjemmesider design kode Om mig # Du kan læse mere om mig på About me, hvor jeg fortæller hvem jeg er, og hvad jeg interesserer mig for.\nMit mål # Mit mål med denne portfolio er at:\nblive bedre til at kode lære Hugo og Git samle mit arbejde ét sted ","date":"11 May 2026","externalUrl":null,"permalink":"/portfolio/","section":"Forside","summary":"","title":"Forside","type":"page"},{"content":"","date":"11 May 2026","externalUrl":null,"permalink":"/portfolio/posts/","section":"Posts","summary":"","title":"Posts","type":"posts"},{"content":"I denne undervisning gik vi i gang med vores projekt. Efter en kort snak i klassen satte jeg mig sammen med min makker Rikke, og vi begyndte at konkretisere vores idé ud fra casen med Engestofte Gods.\nDagens output var en projektbeskrivelse og en systemskitse, hvor vi skulle beskrive problemet, brugeren, løsningen og hvordan systemet kunne bygges.\nProjektidé # Vores arbejdstitel blev:\nNy samlet platform for bryllup/organisering + reminder\nProblemet vi vil arbejde med, handler om overblik, informationsdeling og manuelle processer. I dag skal Johan selv flytte informationer mellem mails, dokumenter, e-conomic og Trello. Det tager tid, og der kan nemt opstå fejl eller manglende opdateringer.\nVores idé er derfor at bygge et standalone program, som kan samle information om bryllupper ét sted og gøre det nemmere at holde styr på opgaver, deadlines og manglende oplysninger.\nVores foreslåede løsning # Vi vil lave en prototype på en app, som giver et samlet overblik over bryllupper og de vigtigste informationer.\nAppen skal blandt andet kunne vise:\nkommende bryllupper opgaver og frister manglende oplysninger dokumenter og noter reminders i systemet Derudover vil vi gerne gøre systemet klar til AI, så man senere kan uploade dokumenter eller mails, hvorefter AI kan læse informationerne og placere dem de rigtige steder.\nAI-funktion # AI skal bruges til at hjælpe med at fordele informationer automatisk. For eksempel kunne AI læse en kontrakt eller en mail og finde oplysninger som dato, antal gæster, navne, aftaler og deadlines.\nTil en start bygger vi dog kun en MVP, hvor AI-funktionen er tænkt ind i strukturen, men ikke nødvendigvis fuldt implementeret.\nSystemskitse # Vi lavede også en skitse over, hvordan systemerne kunne tale sammen.\nI midten har vi vores egen app, EG Admin, som skal fungere som det centrale system. Den skal kunne forbindes med mailsystem, Trello API og på sigt e-conomic. Derudover skal appen indeholde et reminder-system og AI-mappeoverblik.\nHvad vi byggede # Vi begyndte også at formulere en prompt til vores kodeagent. Prompten beskrev blandt andet vores tech stack:\nReact til frontend Java med Javalin til backend PostgreSQL som database Docker og Docker Compose mulighed for senere OpenAI API-integration Vi fik projektet op at køre og fik lavet en fin startside, som vi fremadrettet skal bygge videre på.\nHvad jeg lærte # en projektidé bliver mere konkret, når man skriver problem, bruger og MVP ned det er vigtigt at afgrænse projektet, så det ikke bliver for stort en systemskitse hjælper med at forstå, hvilke dele der skal tale sammen en god prompt til en kodeagent kræver mange konkrete detaljer Resultat # Vi endte dagen med en klarere projektbeskrivelse, en første systemskitse og en fungerende start på vores applikation. Det gav et godt fundament for det videre arbejde med projektet.\n","date":"11 May 2026","externalUrl":null,"permalink":"/portfolio/posts/niendeblogpost/","section":"Posts","summary":"Projektstart, projektbeskrivelse og første systemskitse til vores AI-drevne applikation.","title":"Undervisning 9 – Projektstart","type":"posts"},{"content":"I denne undervisning havde vi besøg af virksomheden Engestofte Gods, som fortalte om deres arbejde, deres systemer og nogle af de udfordringer, de oplever i hverdagen.\nEngestofte Gods arbejder med mange forskellige områder som blandt andet:\nbryllupper events og firmafester restaurant sommerhuse og glamping dagsmøder julemarked og større arrangementer De håndterer mange kunder og meget planlægning, hvilket betyder, at de også arbejder med mange forskellige systemer og manuelle processer.\nHvad gik dagen ud på? # De viste os, hvordan deres arbejdsflow fungerer i dag, og hvilke problemer de oplever i deres daglige arbejde.\nEn stor del af deres arbejde handler om kommunikation med kunder — især omkring bryllupper og events. De modtager mange emails med spørgsmål om priser, muligheder, booking og praktiske detaljer.\nDerudover bruger de forskellige systemer som:\nTrello til planlægning og kanban boards e-conomic til bogføring og fakturaer email-systemer til kundekontakt Word-skabeloner og dokumenter til tilbud og kontrakter Mange af processerne kræver stadig manuelt arbejde og dobbeltkontrol, hvilket tager tid og giver risiko for fejl.\nProblemstillinger vi snakkede om # Vi talte om flere områder, hvor AI og automatisering måske kunne hjælpe dem:\nautomatiske svar på simple kundehenvendelser hjælp til at udfylde kontrakter og dokumenter integration mellem Trello, email og e-conomic reminder-systemer til medarbejdere bedre overblik over data og indkøb mindre dobbeltarbejde i deres workflows De nævnte også, at det er vigtigt, at kundekontakten stadig føles personlig — især når det handler om bryllupper, fordi det er en vigtig dag for kunderne.\nDerfor kunne en mulig løsning være en chatbot eller AI-assistent, som kun hjælper med de simple og praktiske spørgsmål, mens medarbejderne stadig tager sig af den mere personlige kontakt.\nHvad jeg lærte # virksomheder har ofte mange manuelle processer AI handler ikke kun om chatbots, men også automatisering og integrationer mange virksomheder har allerede masser af data, som de ikke bruger optimalt det er vigtigt at forstå brugerens behov før man bygger en løsning Resultat # Dagen gav inspiration til mulige projektidéer og viste, hvordan AI kan bruges til at forbedre rigtige arbejdsprocesser i en virksomhed.\nDet var interessant at høre om konkrete udfordringer fra en rigtig virksomhed og tænke over, hvordan man kunne løse dem med teknologi og AI.\n","date":"4 May 2026","externalUrl":null,"permalink":"/portfolio/posts/ottendeblogpost/","section":"Posts","summary":"Besøg fra Engestofte Gods og idéudvikling omkring AI-løsninger til deres arbejdsprocesser.","title":"Undervisning 8 – Virksomhedsoplæg fra Engestofte Gods","type":"posts"},{"content":"I denne undervisning arbejdede vi med spec driven development og hvordan man bruger specifikationer i AI-drevet udvikling.\nEn spec (specifikation) er en præcis beskrivelse af, hvad et system skal gøre. Det er ikke kode, men en slags opskrift, der forklarer funktionalitet, adfærd og krav.\nEn spec svarer typisk på:\nhvad skal bygges? hvordan skal det opføre sig? hvornår er det færdigt eller korrekt? For eksempel kan en spec beskrive, at en bruger kan uploade en rapport, at systemet sender den til en AI, og at der returneres en vurdering i et bestemt format.\nSpecs er vigtige, fordi de gør udviklingen mere klar og struktureret. De hjælper både udviklere og AI med at forstå opgaven bedre og gør det nemmere at teste, om systemet virker som det skal.\nHvad gik dagen ud på? # Vi startede med at se en video om AI, og Jon havde (vigtigt) taget slik med 🍬\nDerefter gik vi i gang med at snakke om:\nhvordan specs kan bruges sammen med AI/kodeagenter Peter Naur # En stor del af undervisningen handlede om Peter Naur og hans idé:\n“Programming as Theory Building”\nAltså at programmering ikke bare er kode, men en måde at opbygge forståelse på.\nHvad jeg lærte # specs er vigtige – især når man arbejder med AI jo klarere man beskriver noget, jo bedre output får man udvikling handler ikke kun om kode, men også om forståelse Resultat # Jeg fik en bedre forståelse for, hvordan jeg kan bruge specifikationer aktivt i mine projekter, især sammen med AI.\n","date":"1 May 2026","externalUrl":null,"permalink":"/portfolio/posts/syvendeblogpost/","section":"Posts","summary":"Specifikationer, AI-udvikling og lidt teori fra Peter Naur","title":"Undervisning 7 – Spec Driven Development","type":"posts"},{"content":"I denne undervisning arbejdede vi med at implementere en AI-drevet applikation i praksis.\nFokus var ikke længere kun design – men at få en samlet løsning til at fungere end-to-end.\nHvad gik dagen ud på? # Vi byggede videre på arbejdet fra gang 05, hvor vi havde designet:\nrubric til vurdering prompts (system + user) struktur for løsningen I dag handlede det om at omsætte det til kode, så man faktisk står med en applikation, der virker.\nMålet var at lave en app hvor:\nen bruger uploader en praktikrapport rapporten sendes til en LLM via API modellen vurderer den ud fra en rubric og returnerer et struktureret svar Hvad jeg konkret lavede # Jeg byggede en mini-applikation med:\nJava backend → håndterer API-kald og logik React frontend → gør det nemt at indsætte en rapport og se resultatet OpenAI API → selve vurderingen Derudover arbejdede jeg med:\nat lave en systemprompt med rubric at lave userprompts til vurdering at strukturere output (markdown) at gemme resultater i /output Jeg satte også:\n.env til lokal udvikling (API key) GitHub Secrets til sikker håndtering i CI Hvordan det fungerer (bagved) # Selvom det virker simpelt i frontend, sker der flere ting bagved:\n1. Bruger → Frontend # Brugeren indsætter eller uploader en rapport i React-appen.\n2. Frontend → Backend # Frontend sender rapporten til backend via et API endpoint (fx /evaluate).\n3. Backend → LLM (OpenAI API) # Backend:\nhenter systemprompten (med rubric) indsætter rapporten i userprompten sender en request til OpenAI API Requesten indeholder typisk:\nsystem prompt → styrer hvordan modellen skal tænke user prompt → selve opgaven model → fx GPT 4. LLM → Backend # Modellen returnerer et svar (ofte tekst eller struktureret output).\nBackend:\nparser svaret evt. tjekker for fejl sender det videre til frontend 5. Backend → Frontend # Frontend modtager vurderingen og viser den (fx som markdown).\nDataflow (kort fortalt) # Det er altså en kæde, hvor AI’en er en ekstern service, som backend taler med.\nHvad var vigtigt i dag # Fokus var ikke perfektion, men at få tingene til at hænge sammen:\nAPI-kald virker prompts giver brugbare svar output kan bruges i appen Derudover arbejdede vi meget med:\ndebugging → hvorfor virker det ikke? iteration på prompts → små ændringer = store forskelle fejlhåndtering → hvad hvis API fejler? test på rigtige eksempler Hvad jeg lærte # Det vigtigste jeg tog med var:\nhvordan man går fra idé → fungerende system hvor vigtigt promptdesign er for output hvordan AI indgår som en del af en arkitektur, ikke bare en chatbot Det her føles klart som mere “rigtig udvikling”, fordi:\nman bygger noget, der faktisk kan bruges man skal få flere dele til at spille sammen og AI er kun én del af hele systemet Resultat # Jeg endte med en første version af en LLM-drevet vurderingsapp, hvor:\nrubric, prompts og API er integreret en rapport kan vurderes automatisk output vises struktureret Der er stadig ting, der kan forbedres – men systemet virker, og det er det vigtigste første skridt.\n","date":"27 April 2026","externalUrl":null,"permalink":"/portfolio/posts/sjeteblogpost/","section":"Posts","summary":"Fra idé til fungerende AI-app: implementering af rubric, prompts og LLM API i praksis","title":"Undervisning 6 – Implementering af LLM API","type":"posts"},{"content":"I denne undervisning arbejdede vi med AI-drevne applikationer og hvordan man integrerer en LLM via API i sin egen software.\nHvad er en AI-drevet applikation? # En AI-drevet applikation er en app, hvor AI er en central del af funktionaliteten.\nFx:\ntager input fra brugeren analyserer det med en model returnerer et svar eller en vurdering Et eksempel var en app, der vurderer en opgave ud fra en rubric.\nHvad skal der til? # For at bygge det skal man bruge:\nFrontend → brugerinterface Backend → håndterer logik og API-kald LLM API → selve AI’en Dataflow → hvordan data bevæger sig frem og tilbage Man bruger altså AI som en ekstern service.\nHvordan fungerer det? # Bruger sender input Backend sender request til LLM Man bruger: system prompt user prompt Modellen returnerer svar Svaret bruges i appen Vigtige ting # Promptstruktur → påvirker resultatet meget Struktureret output (fx JSON) → nemmere at bruge i kode Fejlhåndtering → API kan fejle eller give mærkelige svar Async kode → API-kald tager tid Dagens opgave # Byg en mini-app der:\nbruger et LLM API vurderer en opgave har frontend eller REST client dokumenterer løsningen Mine tanker # Det her føles mere som “rigtig” udvikling med AI.\nMan bruger ikke bare en chatbot, men bygger en app hvor AI er en del af systemet.\nAI gør ikke arbejdet for dig – men ændrer måden man arbejder på.\n","date":"24 April 2026","externalUrl":null,"permalink":"/portfolio/posts/femteblogpost/","section":"Posts","summary":"Kort om hvad en AI-drevet applikation er, og hvordan man bygger en med et LLM API","title":"Undervisning 5 – AI-drevne applikationer og LLM API","type":"posts"},{"content":"I denne undervisning arbejdede vi videre med vores portfolio, men denne gang med fokus på automatisering.\nMålet var at lave en løsning, hvor vores Dify-chatbot automatisk bliver opdateret med nyt indhold fra vores portfolio, hver gang vi kører vores Java-program. På den måde slipper vi for manuelt at uploade sider én efter én, og chatbotten kan hele tiden arbejde med det nyeste indhold.\nOverblik over systemet # Systemet fungerer sådan her:\nJava henter alle links fra sitemap.xml hver side bliver sendt til Jina Reader siden bliver konverteret til Markdown Markdown bliver sendt videre til Dify Knowledge Base Dify bruger derefter indholdet sammen med LLM og embeddings Det betyder, at hele flowet fra website til chatbot bliver automatiseret.\nDet vi lavede # Vi lavede et Java-program, som kan:\nlæse alle sider fra vores portfolio hente indholdet automatisk via sitemap konvertere siderne til Markdown oprette eller opdatere dokumenter i Dify synkronisere eksisterende indhold automatisk Det gør, at chatbotten altid er opdateret med vores nyeste portfolio-indhold, uden at vi skal gøre det manuelt.\nFokus på automatisering # Det vigtigste i denne opgave var ikke bare at hente data, men at få systemet til at arbejde automatisk.\nProgrammet finder selv:\nhvilket dataset der skal bruges i Dify hvilke sider der findes i vores sitemap hvilke dokumenter der allerede ligger i Dify om et dokument skal oprettes eller opdateres På den måde bliver løsningen mere robust og mere brugbar i praksis.\nEksempel på main-klassen # Main-klassen er det sted, hvor programmet starter. Her bliver miljøvariabler læst ind, og selve synkroniseringen bliver sat i gang.\npackage app; public class Main { public static void main(String[] args) throws Exception { String sitemapUrl = args.length \u0026gt; 0 ? args[0] : System.getenv(\u0026#34;SITEMAP_URL\u0026#34;); String difyApiKey = System.getenv(\u0026#34;DIFY_API_KEY\u0026#34;); if (sitemapUrl == null || difyApiKey == null) { System.err.println(\u0026#34;\u0026#34;\u0026#34; Mangler konfiguration. Sæt følgende: export DIFY_API_KEY=din-nøgle java -jar sitemap-to-dify.jar https://dit-website.dk/sitemap.xml \u0026#34;\u0026#34;\u0026#34;); System.exit(1); } new SitemapToDify(difyApiKey).runSync(sitemapUrl); } } Mine tanker # Jeg syntes, det har været lidt svært og nyt det her med at prompte AI til den kode, man gerne vil have. Man skal lige tænke sig en ekstra gang om, hvad det egentlig er, man vil have – man skal have tungen lige i munden.\nDet tog også to forsøg for mig. Min første prompt var ikke så fyldestgørende, men efterfølgende, da jeg fik uddybet den, spyttede AI noget kode ud, hvor man egentlig bare skulle indsætte de to klasser og køre det.\nJeg synes, det er meget interessant, hvor hurtigt det kan gå, og hvor hurtigt man kan få stablet noget kode på benene, som faktisk virker. Men det kan også være lidt farligt, fordi man hurtigt kan indsætte noget kode, som virker, uden rigtig at have kigget på det eller forstået, hvorfor det virker.\nSå selvom det er et rigtig godt redskab, er det vigtigt, at man stadig har sine kritiske briller på.\n","date":"20 April 2026","externalUrl":null,"permalink":"/portfolio/posts/tredjeblogpost/","section":"Posts","summary":"Automatisering af portfolio så Dify-chatbotten automatisk opdateres via Java, sitemap, Jina Reader og Dify API","title":"Undervisning 3 – Automatisk sync mellem portfolio og Dify","type":"posts"},{"content":"I denne undervisning arbejdede vi med kode agenter. til start via mit chat+ abonoment instalerede jeg codex via npm i -g @openai/codex i terminal\nHvad er Codex? # Codex er en AI, som er lavet til at hjælpe med programmering og udvikling.\nDen kan forstå almindeligt sprog og omsætte det til kode, forslag eller forklaringer.\nDet betyder, at man kan bruge Codex til for eksempel at:\nskrive kode ud fra en beskrivelse forklare eksisterende kode finde fejl og foreslå rettelser hjælpe med struktur og idéer til et projekt Det jeg syntes er smart her er at man kan have den i sit IDE fx VSC, og den derfra har adgang og overblik over ens allerede eksisterende kode.\nDet betyder, at agenten ikke bare giver forslag, men faktisk kan arbejde “hands-on” i ens kodebase.\nHvorfor er det relevant? # Codex kan være et nyttigt værktøj i udviklingsarbejde, fordi det kan spare tid og hjælpe med at komme videre, hvis man sidder fast.\nDet erstatter ikke en udvikler, men fungerer mere som en assistent, der kan støtte arbejdet og gøre det lettere at teste idéer hurtigt.\nKode agenter # En assistent svarer på spørgsmål og hjælper med forslag (fx ChatGPT) En agent kan derimod udføre handlinger selv – fx skrive kode, ændre filer og køre kommandoer Horisontale vs. vertikale agenter\nVi snakkede også om forskellige typer af agenter:\nHorisontale agenter\n→ Kan lidt af det hele og bruges bredt (fx generel kodehjælp)\nVertikale agenter\n→ Er specialiserede til én bestemt opgave eller domæne (fx kun backend, kun tests, eller kun deployment)\nDet handler altså om, hvor bred eller fokuseret agentens rolle er.\nMine tanker # Jeg synes, det er spændende at arbejde med værktøjer som Codex, fordi det viser, hvordan AI kan bruges mere praktisk i softwareudvikling.\nDet gør det nemmere at få hjælp undervejs og giver nye muligheder for at lære og eksperimentere.\nMEN!! I undervisningen så vi et eksempel, hvor der blev lavet en cupcake-app på omkring 20 minutter ved hjælp af en kode-agent.\nDet var ret vildt at se, hvor hurtigt man kan gå fra idé til færdigt produkt, når agenten både kan:\nskrive kode oprette filer strukturere projektet Derudover fik vi en “kunde” på besøg (Jon), som med meget få krav ville have en meditations-quiz-side op at køre.\nDet sad vi hver især og arbejdede med ved hjælp af vores kodeagenter (Codex). Jeg startede med at skrive til ChatGPT om, hvad jeg forestillede mig, og bad den om at lave en god prompt ud fra det.\nEfter ChatGPT havde genereret prompten, smed jeg den ind i min kodeagent, og efter cirka 3 minutter havde jeg en fuld, velfungerende quiz-hjemmeside oppe at køre.\nDet synes jeg var både skræmmende og fascinerende på samme tid.\n","date":"20 April 2026","externalUrl":null,"permalink":"/portfolio/posts/fjerdeblogpost/","section":"Posts","summary":"Kort introduktion til Codex og hvordan det kan hjælpe med kode og udvikling","title":"Undervisning 4 – kodeagenter","type":"posts"},{"content":" Datamatikerstuderende\nMie Gram Jeg er datamatikerstuderende med interesse for softwareudvikling og digitale løsninger. Gennem min uddannelse arbejder jeg med både frontend og backend, blandt andet i Java, JavaScript, React, PostgreSQL og REST-API’er. Jeg trives i samarbejde med andre og motiveres af at omsætte idéer til løsninger, der fungerer i praksis. Jeg arbejder struktureret, er nysgerrig på nye teknologier og lægger vægt på både faglig udvikling og godt samarbejde. GitHub mie.gram@live.dk Profil Jeg har en særlig interesse for udvikling, hvor teknik, struktur og brugervenlighed går hånd i hånd. Jeg kan godt lide at forstå både den tekniske opbygning og den sammenhæng, som løsningen skal fungere i. Gennem studiet har jeg arbejdet med programmering, databaser og udviklingsprojekter, og jeg synes, det er spændende at lære nyt og udvikle mine kompetencer i praksis. Kompetencer Java JavaScript og React HTML og CSS PostgreSQL og SQL REST-API’er Git og agile metoder Python og databehandling Sådan arbejder jeg Jeg er udadvendt, ansvarsbevidst og samarbejdsorienteret. Jeg trives i teams, hvor man sparrer om løsninger, hjælper hinanden og arbejder mod et fælles mål. Jeg går til nye opgaver med engagement og en positiv indstilling, og jeg lægger vægt på at være en god kollega samt en stabil og nysgerrig udvikler. Kontakt Navn: Mie Gram\nE-mail: mie.gram@live.dk\nBy: København Ø\nTlf: 42 38 34 02\n","date":"13 April 2026","externalUrl":null,"permalink":"/portfolio/about/aboutme/","section":"Abouts","summary":"","title":"About me","type":"about"},{"content":"","date":"13 April 2026","externalUrl":null,"permalink":"/portfolio/about/","section":"Abouts","summary":"","title":"Abouts","type":"about"},{"content":"I denne undervisning arbejdede vi med noget der hedder RAG (Retrieval Augmented Generation).\nHvad er RAG? # RAG står for Retrieval-Augmented Generation og er en metode inden for kunstig intelligens, der kombinerer informationssøgning med tekstgenerering. Formålet med RAG er at gøre AI-modeller mere præcise og opdaterede ved at lade dem hente relevant information fra eksterne kilder, før de genererer et svar. I stedet for kun at basere sig på den viden, modellen er trænet på, kan en RAG-model slå op i eksempelvis dokumenter, databaser eller interne vidensbaser. Det betyder, at svarene bliver mere faktabaserede og relevante i forhold til brugerens spørgsmål. RAG består typisk af tre hoveddele:\nIndeksering (Indexing) Før systemet kan bruges, bliver dokumenter delt op i mindre dele og gemt på en måde, så de hurtigt kan søges i. Disse dele kaldes chunks. Hver chunk bliver omdannet til en såkaldt embedding, som gør det muligt for systemet at sammenligne og finde relevant indhold. Retrieval (Søgning) Når brugeren stiller et spørgsmål, bliver spørgsmålet også omdannet til en embedding. Systemet søger derefter efter de chunks, der minder mest om spørgsmålet, og vælger de mest relevante tekststykker. Generation (Generering) De fundne chunks sendes til en sprogmodel, som bruger informationen til at formulere et svar. På den måde bliver svaret baseret på konkrete kilder i stedet for kun modellens træning. En vigtig del af RAG er brugen af chunks. Da dokumenter ofte er lange, bliver de opdelt i mindre tekststykker for at gøre søgningen mere præcis og effektiv. Hvis man arbejdede med hele dokumenter, ville systemet have sværere ved at finde præcis den relevante information. Chunks gør det derfor muligt at hente små, målrettede dele af teksten, som passer direkte til brugerens spørgsmål. Ofte arbejder man også med overlap mellem chunks, så vigtig information ikke går tabt i opdelingen. Sammenfattende kan man sige, at RAG gør AI-systemer bedre ved først at finde relevant information og derefter bruge den til at generere mere præcise og troværdige svar. Hvordan virker det? # Vi lærte, at RAG fungerer sådan:\nMan lægger sine dokumenter ind De bliver lavet om til embeddings (tal som AI kan forstå) Når man stiller et spørgsmål: systemet finder relevante tekststykker og sender dem med til AI\u0026rsquo;en AI’en svarer ud fra både sin viden og de fundne data Praktisk arbejde (Diffy) # Vi arbejdede i Diffy, hvor vi byggede vores egen chatbot.\nhttps://cloud.dify.ai/app/edabd953-ac4f-4231-815f-6eeee6689e10/configuration Her kunne vi:\nuploade vores egne data teste hvordan chatbotten svarede justere og forbedre svarene Det var interessant at se, hvordan svarene blev bedre, når vi gav den relevant data.\nhertil forsøgte vi med studieordningen. # Hvornår giver RAG mening? # Vi snakkede om, hvornår RAG er en god idé:\nGodt når:\nman har egne dokumenter man vil have præcise svar man arbejder med specifik viden Mindre godt når:\nman bare stiller generelle spørgsmål man ikke har noget data at koble på Mini-projekt # Opgaven var at lave en simpel chatbot baseret på vores eget materiale.\nFormålet var:\nat forstå hvordan RAG fungerer i praksis at eksperimentere med AI og data at bygge noget selv Det har jeg lært # hvad RAG er hvordan AI kan bruge egne data hvad embeddings er hvordan man kan bygge en chatbot Mine tanker # Jeg synes det var spændende at arbejde med AI på den her måde.\nDet var fedt at kunne bruge sine egne data og se, hvordan det påvirker svarene.\nDet var lidt teknisk, men også meget relevant i forhold til fremtidig teknologi.\n","date":"13 April 2026","externalUrl":null,"permalink":"/portfolio/posts/andenblogpost/","section":"Posts","summary":"Introduktion til Retrieval Augmented Generation og egen chatbot","title":"Undervisning 2 – RAG","type":"posts"},{"content":"I denne undervisning er vi startet på at lave vores egen portfolio ved hjælp af Hugo og temaet Blowfish. forinden så vi hjemme video om LLM https://www.youtube.com/watch?v=LPZh9BOjkQs\nInstallation # Vi startede med at installere Hugo på vores computer og sætte et nyt projekt op.\nDerefter:\noprettede vi et Hugo-site tilføjede Blowfish som tema startede serveren lokalt, så vi kunne se siden i browseren (localhost) via hugo server i terminal Guide # https://gohugo.io/ https://blowfish.page/ https://aida.kursusmaterialer.dk/tools/portfolio Markdown # Vi arbejdede med Markdown, som er en simpel måde at skrive tekst på.\nEksempler:\n# til overskrifter - til punktlister **tekst** til fed skrift Det gør det nemt at skrive indhold uden at skulle kode HTML.\nBlog # Vi lærte at lave blogindlæg ved at oprette .md filer i content/posts/.\nHvert indlæg indeholder:\nen titel en dato tekst om hvad vi har lavet Hugo sørger selv for:\nat vise alle indlæg på blog-siden at lave en side for hvert indlæg Det har jeg lært # hvordan Hugo er opbygget instalere Hugo deployment via. git lidt tanker om hvordan en LLM virker hentet blowfish template Mine tanker # Det var forholdsvist nemt at opsætte så længe man følger den givne guide derudover tror jeg det bliver interasant at blive bedre til markdown.\n","date":"10 April 2026","externalUrl":null,"permalink":"/portfolio/posts/firstpost/","section":"Posts","summary":"Opsætning af portfolio med Hugo og Blowfish","title":"Undervisning 1 – Hugo \u0026 Blowfish","type":"posts"},{"content":"","externalUrl":null,"permalink":"/portfolio/project/","section":"Forside","summary":"","title":"","type":"page"},{"content":"","externalUrl":null,"permalink":"/portfolio/authors/","section":"Authors","summary":"","title":"Authors","type":"authors"},{"content":"","externalUrl":null,"permalink":"/portfolio/categories/","section":"Categories","summary":"","title":"Categories","type":"categories"},{"content":"","externalUrl":null,"permalink":"/portfolio/series/","section":"Series","summary":"","title":"Series","type":"series"},{"content":"","externalUrl":null,"permalink":"/portfolio/tags/","section":"Tags","summary":"","title":"Tags","type":"tags"}]