Sådan bygger du et intelligent værktøj til mødesøgning med Codex

Se, hvordan Codex hurtigt omsatte optagede virksomhedsmøder til søgbar viden i en praktisk intern løsning.

Resumé

  • Optagede møder er en underudnyttet vidensressource. De er svære at søge i og tidskrævende at genbesøge, og de ligger isoleret på forskellige teamdrev. Derfor bliver værdifuld indsigt ofte overset.

  • På et endagshackathon byggede et hold på tre personer Callombia. Det er en intern platform, der automatisk transskriberer, tagger, opsummerer og opdeler optagede opkald i klip i et søgbart, YouTube-lignende lager, som er tilgængeligt på tværs af globale kontorer.

  • Løsningen, der udelukkende er bygget med Codex, bruger semantisk søgning baseret på embeddings fra OpenAI og cosinuslighed til at finde relevante øjeblikke, selv når de præcise søgeord ikke bruges. Ovenpå ligger en RAG-chatbot og et notifikationssystem.

  • Det, der tidligere ville have taget flere uger, blev leveret på syv timer. Det viser, hvordan AI-baseret udvikling med kodeagenter som Codex kan forkorte produktudviklingens livscyklus markant og skabe reel forretningsværdi gennem interne hackathons.

Hvis du er som mig, har du sjældent tid eller koncentration nok til at genhøre optagede møder. Det skyldes ofte, at man skal lede på uorganiserede teamdrev, springe over halvdårlig smalltalk og forsøge rent faktisk at lytte, mens man sender e-mails og beskeder.

Men måske behøver det ikke at være sådan? Måske kunne vi bygge noget, der fuldstændig ændrer måden, vi bruger optagede møder på? Det var tanken bag vores seneste hackathonprojekt.

På blot én dag arbejdede 50 personer fra vores engineering-, delivery- og driftsteams med en række problemstillinger fra hele virksomheden – fra skalering af rekrutteringsdrift og strømlining af SoW-udarbejdelse til forståelse af projektstatus, generering af liveprototyper og udledning af indsigter fra optagede møder.

På dette Codex-baserede hackathon byggede vi Callombia. Callombia er virksomhedens svar på YouTube og gør hvert opkald til en levende, søgbar ressource. Hvert opkald transskriberes, tagges og opsummeres automatisk, før det opdeles i tematiske klip og føjes til et lager organiseret efter kanal (kunder) og emne (AI-specialer). Det giver alle medarbejdere i London, Edinburgh, Singapore og Australien øjeblikkelig adgang til de dele af opkaldene, der interesserer dem.

En velkendt brugerflade i virksomhedens visuelle stil gør det intuitivt at finde indhold, mens semantisk søgning – og selvfølgelig en RAG-AI-chatbot – hjælper folk med at finde præcis det, de søger. Med et notifikationssystem kan vores kolleger også abonnere på bestemte emner og få besked, når der udgives nye klip, som er relevante for dem.

Det fede ved Callombia er dog hverken produktet eller præmien på 2.000 £ for at vinde hackathonet (blær), men at vi kunne bygge det hele på blot syv timer med to udviklere og en delivery lead. Det var ikke muligt for et år siden. Forbedringer af kodeagenter har accelereret hele produktudviklingsprocessen markant, og dette hackathon var en fremragende prøveplads til at forstå teknologiens ujævne grænser. Hvordan brugte vi så Codex?

Planlægning af løsningen

I stedet for blot at skrive en masse krav begyndte vi med at dele vores fælles syn på problemområdet og visionen for Callombia i form af en prompt. Ved bevidst at holde beskrivelsen overordnet lod vi modellen gøre arbejdet og tænke kreativt:

Efter ti minutters dialog aktiverede vi Plan Mode for at afgrænse kravene og danne grundlag for den tekniske del af løsningen. Plan Mode føles som at svare på spørgsmål fra den irriterende ven, der – heldigvis – har gennemtænkt alle tænkelige scenarier. Da vi havde afklaret blandt andet antallet af videoer, semantisk søgning kontra søgeordssøgning og valget af arkitektur, oprettede den en markdownfil, som dannede grundlag for resten af projektet.

Skærmbillede, der illustrerer planlægningen af løsningen.

Udvikling af kernekomponenterne

Da planen var på plads, var næste skridt at bygge de kernekomponenter, der skulle få Callombia til at fungere i praksis. Det betød, at vi skulle etablere en pipeline fra optagede opkald til søgbare ressourcer:

  1. Indlæsning af videoer og transskriptioner,

  2. opdeling i meningsfulde øjeblikke,

  3. berigelse med resuméer og tags,

  4. tilgængeliggørelse via API'er, som frontenden kunne bruge.

Ed fokuserede primært på at omsætte rå optagelser og transskriptionsdata til et anvendeligt format, mens Nico arbejdede på det søgelag, der skulle gøre øjeblikkene nemme at finde. Med Codex kunne de begge etablere datamodeller, udtræksscripts og backend-infrastruktur langt hurtigere, end vi kunne have gjort manuelt. Det gav os langt mere end blot en transskription knyttet til en video. Det gav os konkrete øjeblikke: afsnittet om Tesco, strategiopdateringen, drøftelsen af rekruttering eller de præcise 90 sekunder af et opkald, som nogen faktisk ønsker at se.

Det var især i søgelaget, at det blev interessant. Vi ønskede, at man kunne skrive noget i stil med “financial performance,” “Tesco roadmap,” eller “conversation evals” og blive ført til de mest relevante klip, selv hvis netop disse ord aldrig var blevet sagt. Derfor oprettede vi tekstbidder med tidsstempler, resuméer, transskriptionstekst og metadata. Med en klar arkitektur i tankerne og masser af hjælp fra Codex samlede vi emne, resumé og transskription i ét input og brugte OpenAI's text-embedding-3-small-model til at generere embeddings for hver tekstbid. Vi gemte disse embeddings i vores database og brugte cosinuslighed til at sammenligne brugerens forespørgsel med hver enkelt tekstbid. Det gav os et semantisk søgelag frem for en simpel søgeordssøgning.

Det gav meget præcise resultater og skabte produktets »magiske« fornemmelse under hackathondemoen. Samtidig vidste vi, at denne tilgang ikke kunne skaleres uendeligt, hvis antallet af videoer fortsatte med at vokse, fordi det med tiden ville blive for dyrt at sammenligne hver forespørgsel med hver eneste tekstbid. Det naturlige næste skridt ville være at indføre mere effektive søgestrategier såsom Hierarchical Navigable Small World for at reducere antallet af sammenligninger og holde latenstiden lav, efterhånden som datamængden vokser. Da denne funktion virkede, begyndte Callombia at føles mindre som et mediebibliotek og mere som et videnssystem.

Som ved alle gode hackathons krævede den del også flere iterationer: De første grænser mellem tekstbidderne var for upræcise, nogle tidsstempler skulle justeres, nogle tags var for brede, og transskriptions- og optagelsesfilerne passede ikke altid præcist sammen. Men det var også her, værdien viste sig. Med Codex kunne vi hurtigt finjustere systemet i stedet for at sidde fast i opsætning og omarbejde. Til sidst havde vi en backend, der kunne levere klip, uddrag og reelt nyttig semantisk søgning. Det var her, Callombia begyndte at føles som et rigtigt produkt frem for blot en hackathondemo.

Frontend-udvikling og brugerflade

Mens Ed og Nico byggede indlæsningen og intelligenslaget, byggede jeg frontenden. Med vores full-stack-skabelon kunne jeg hurtigt oprette en første version af websitet uden at skrive en eneste linje kode. Efter at have bedt den om at åbne websitet lokalt i min browser gav jeg enkel feedback i punktform og finjusterede designet, indtil det matchede mine ønsker.

Efter cirka en times dialog havde jeg noget, jeg var godt tilfreds med – helt uden erfaring med brugerflader eller design. Slutproduktet er bestemt ikke perfekt, men det er en ganske god første version, som gør det nemt at forstå produktet.

Skærmbillede, der illustrerer frontend-udvikling og brugerflade.

Sådan blev al koden samlet

For at sikre, at vi havde noget færdigt ved dagens afslutning, fordelte vi arbejdet mellem os. Efter nogle timers delvist selvstændigt arbejde havde vi naturligvis hver vores lokale branch med et hav af konflikter.

I stedet for at bruge den tid, vi ikke havde, på omhyggeligt at gennemgå og løse konflikterne slap vi Codex løs på kodebaserne og lod den løse konflikterne selv. Selvom vi endnu ikke vil anbefale denne fremgangsmåde til softwareudvikling på virksomhedsniveau, var det utroligt at se, hvor effektivt det fungerede i et miljø med lav risiko – og det sparede os mange timer.

Hele demoen

Den sidste del af hackathonet var at optage en demonstration af Callombia til dommerne. Vores første indskydelse var at åbne Loom og optage demoen, men vi tænkte, at det kunne blive en reel prøve for Codex og ligge lidt uden for dens nuværende evner. Så … Vi skrev en prompt, gav den et link til Callombias website, vedhæftede en optagelse af min stemme på OpenAI's udviklerplatform og bad den klare resten.

Første forsøg var meget imponerende: Den havde skrevet et demomanuskript, optaget skærmen, tilføjet min voiceover og stort set opfyldt opgaven. Det eneste, vi ikke straks var tilfredse med, var synkroniseringen af voiceoveren med demooptagelsen, så vi bad den: “MANDATORY: align the voiceover exactly with what is being shown in the demo. There was misalignment (e.g. on the chat page). Triple check alignment of voiceover and the screen-recorded demo at the end. Match it up through whichever means possible.”

Som svar på anmodningen opdelte Codex voiceoveren og optagelsen i mindre dele og løste opgaven næsten fejlfrit – lige i tide til øl og pizza kl. 17.30.

På vej mod en mere AI-baseret arbejdsform

Vi ved, at Callombia løser et problem, som de fleste virksomheder har. Det er svært at deltage i alle opkald i en virksomhed, der vokser hurtigt, men de guldkorn, som deles under opkaldene, er uvurderlige. Nu skal vi bare have løsningen sat i produktion.

Men der ligger også en større lære i at arbejde AI-baseret og bruge vores tekniske og produktmæssige ekspertise på fælles problemer. Ved at bryde med vores sædvanlige arbejdsgang og samarbejde på tværs af teams i et lettere konkurrencepræget miljø endte vi med en række løsninger, der med enkelte justeringer kunne sættes i produktion. Hvis vi gør det regelmæssigt, kan vi sikre, at vores interne løsninger er lige så velfungerende som dem, vi bygger til kunderne.

Forfatter

George Montagu, Ed Jeffery og Nicolas Franco Gonzalez