Bygg ett smart verktyg för att hitta möten med Codex

Se hur Codex snabbt och praktiskt hjälpte oss att göra inspelade företagsmöten till sökbar kunskap i ett internt projekt.

Sammanfattning

  • Inspelade möten är en underutnyttjad kunskapsresurs. De är svåra att söka i, tidskrävande att gå tillbaka till och utspridda på olika teamdiskar, vilket gör att värdefulla insikter ofta förbises.

  • Under ett endagshackaton byggde ett team på tre personer Callombia. Det är en intern plattform som automatiskt transkriberar, taggar, sammanfattar och klipper inspelade samtal till ett sökbart Förvar i YouTube-stil som är tillgängligt för kontor världen över.

  • Lösningen, som helt byggdes med Codex, använder semantisk sökning baserad på OpenAI-inbäddningar och cosinuslikhet för att hitta relevanta ögonblick även när de exakta sökorden inte används. Ovanpå detta finns en RAG-chattbot och ett aviseringssystem.

  • Det som tidigare skulle ha tagit flera veckor levererades på sju timmar. Det visar hur AI-baserad utveckling med kodningsagenter som Codex drastiskt kan korta produktutvecklingscykeln och skapa verkligt affärsvärde genom interna hackaton.

Om du är som jag har du sällan tid (eller tillräckligt lång koncentrationsförmåga) för att lyssna på inspelade möten i efterhand. Det beror ofta på att man måste leta igenom oorganiserade teamdiskar, hoppa över halvdant småprat och försöka faktiskt lyssna samtidigt som man skickar mejl och meddelanden.

Men det kanske inte behöver vara så? Tänk om vi kunde bygga något som helt förändrar hur inspelade möten används? Det var tanken bakom vårt senaste hackatonprojekt.

På bara en dag tog 50 personer från våra teknik-, leverans- och driftteam sig an flera problem från olika delar av verksamheten: att skala upp rekryteringsarbetet, effektivisera skapandet av SoW, förstå projektens status, generera prototyper i realtid och hitta insikter i inspelade möten.

Under detta Codex-baserade hackaton byggde vi Callombia. Callombia är verksamhetens eget YouTube, där varje samtal blir en levande och sökbar resurs. Varje samtal transkriberas, taggas och sammanfattas automatiskt innan det delas upp i tematiska klipp och läggs till i ett Förvar, grupperat efter kanal (kunder) och ämne (AI-specialområden). På så sätt kan alla medarbetare i London, Edinburgh, Singapore och Australien direkt komma åt de ögonblick i samtalen som är relevanta för dem.

Ett välbekant gränssnitt i vår grafiska profil gör det intuitivt att upptäcka innehåll, medan semantisk sökning (och förstås en RAG-baserad AI-chattbot) hjälper användarna att hitta exakt det de söker. Med ett aviseringssystem kan våra kollegor dessutom prenumerera på vissa ämnen och få besked när nya relevanta klipp publiceras.

Det häftiga med Callombia är dock varken produkten eller prissumman på 2 000 pund för hackatonvinsten (lite skryt), utan att vi kunde bygga allt detta på bara sju timmar med två ingenjörer och en leveransansvarig. Det hade inte varit möjligt för ett år sedan. Förbättringar av kodningsagenter har gjort produktutvecklingen från början till slut avsevärt snabbare, och detta hackaton blev en utmärkt testmiljö för att utforska teknikens ojämna gränsområden. Så hur använde vi Codex?

Planera lösningen

I stället för att bara skriva en lång kravlista började vi med att dela vår gemensamma syn (som en Prompt) på problemområdet och visionen för Callombia. Genom att medvetet hålla beskrivningen vag lät vi Modellen göra jobbet och tänka kreativt:

Efter tio minuters dialog aktiverade vi planeringsläget för att avgränsa kraven och lägga grunden för den tekniska delen av bygget. Planeringsläget känns som att svara på frågor från den där irriterande vännen som (tack och lov) har tänkt igenom alla tänkbara scenarier. När vi hade enats om sådant som antalet videor, semantisk sökning eller nyckelordssökning och vilken arkitektur vi skulle använda skapade Codex en markdown-fil som sedan blev projektets grund.

Skärmbild som visar planeringen av lösningen.

Bygga kärnkomponenterna

När planen var klar var nästa steg att bygga kärnkomponenterna som skulle få Callombia att fungera i praktiken. Det innebar att skapa ett flöde från inspelade samtal till sökbara resurser:

  1. Läsa in videor och transkriptioner,

  2. Dela upp dem i meningsfulla ögonblick,

  3. Berika dem med sammanfattningar och taggar,

  4. Göra dem tillgängliga via API:er som frontend kunde använda.

Ed fokuserade främst på att omvandla råinspelningar och transkriptionsdata till ett användbart format, medan Nico arbetade mer med söklagret som skulle göra ögonblicken möjliga att hitta. Med Codex kunde båda skapa datamodeller, extraktionsskript och backend-infrastruktur mycket snabbare än vi hade kunnat göra manuellt. Det gav oss mycket mer än bara en transkription kopplad till en video. Vi fick specifika ögonblick: avsnittet om Tesco, strategiuppdateringen, rekryteringsdiskussionen eller just de 90 sekunder i ett samtal som någon faktiskt vill se.

Det var i söklagret som det blev särskilt intressant. Vi ville att någon skulle kunna skriva något som “financial performance,” “Tesco roadmap,” eller “conversation evals” och komma till de mest relevanta klippen, även om just de orden aldrig hade sagts. Därför skapade vi textblock med tidsstämplar, sammanfattningar, transkriptionstext och metadata. Med en tydlig arkitektur i åtanke och mycket hjälp från Codex kombinerade vi ämne, sammanfattning och transkription till en enda indata och använde OpenAI:s Modell text-embedding-3-small för att generera inbäddningar för varje textblock. Vi lagrade inbäddningarna i databasen och använde cosinuslikhet för att jämföra en användares sökfråga med varje textblock. På så sätt fick vi ett semantiskt söklager i stället för en enkel nyckelordssökning.

Detta gav mycket hög träffsäkerhet och skapade produktens ”magiska” känsla under hackatondemon. Samtidigt visste vi att metoden inte skulle kunna skalas hur långt som helst om antalet videor fortsatte att växa, eftersom det så småningom skulle bli för dyrt att jämföra varje sökfråga med varje textblock. Det naturliga nästa steget vore att införa effektivare sökstrategier, exempelvis Hierarchical Navigable Small World, för att minska antalet jämförelser och hålla svarstiden nere när materialet växer. När funktionen väl fungerade började Callombia kännas mindre som ett mediebibliotek och mer som ett kunskapssystem.

Som på alla bra hackaton behövde även den delen finslipas: de första gränserna mellan textblocken var för grova, vissa tidsstämplar behövde justeras, några taggar var för breda och transkriptions- och inspelningsfilerna låg inte alltid prydligt i linje. Men det var också där värdet blev tydligt. Med Codex kunde vi snabbt finslipa systemet i stället för att fastna i konfiguration och omarbete. Till slut hade vi en backend som kunde driva klipp, utdrag och genuint användbar semantisk sökning. Det var då Callombia började kännas som en verklig produkt i stället för bara en hackatondemo.

Bygga frontend och användargränssnitt

Medan Ed och Nico byggde inläsningen och intelligenslagret byggde jag frontend. Med vår fullstackmall kunde jag snabbt få fram en första version av webbplatsen utan att skriva en enda rad kod. Efter att ha bett Codex öppna webbplatsen lokalt i min webbläsare gav jag enkel återkoppling i punktform för att stegvis forma designen efter mina önskemål.

Efter ungefär en timmes dialog hade jag något som jag var riktigt nöjd med – helt utan erfarenhet av vare sig användargränssnitt eller design. Slutprodukten är definitivt inte perfekt, men det är en riktigt bra första version som hjälper människor att förstå produkten.

Skärmbild som visar bygget av frontend och användargränssnitt.

Foga samman all kod

För att vara säkra på att ha något färdigt vid dagens slut hade vi delat upp arbetet mellan oss. Efter några timmars relativt självständigt arbete hade vi förstås varsin lokal gren med mängder av konflikter.

I stället för att lägga tid som vi inte hade på att metodiskt gå igenom och lösa konflikterna släppte vi helt enkelt lös Codex på kodförvaren och lät det åtgärda dem på egen hand. Vi skulle inte rekommendera detta för programutveckling på företagsnivå i nuläget, men det var otroligt att se hur effektivt det fungerade i en miljö med låga insatser – och det sparade oss många timmar.

Hela demon

Hackatonets sista moment var att spela in en demo av Callombia åt domarna. Instinktivt ville vi öppna Loom för att sköta inspelningen, men vi insåg att det här kunde bli ett verkligt test för Codex – och låg en bit utanför dess nuvarande förmåga. Så … vi skrev en Prompt, gav Codex en länk till Callombias webbplats, bifogade en inspelning av min röst på OpenAI:s utvecklarplattform och bad det sköta resten.

Det första försöket var mycket imponerande: Codex hade skrivit ett demomanus, spelat in skärmen, lagt till min berättarröst och i stort sett uppfyllt uppdraget. Det enda vi inte genast var nöjda med var synkroniseringen mellan berättarrösten och demoinspelningen, så vi bad Codex: “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 delade Codex upp berättarrösten och inspelningen i mindre delar och genomförde uppgiften nästan felfritt – precis i tid till klockan 17.30 och firandet med öl och pizza.

Bli mer AI-baserade

Vi vet att Callombia löser ett problem som de flesta företag har. Det är svårt att delta i alla samtal på ett snabbväxande företag, men guldkornen som delas under dem är ovärderliga. Nu behöver vi bara produktionssätta det.

Men här finns också en större lärdom om att arbeta AI-baserat och om värdet av att använda teknisk kompetens och produktkunnande för att lösa gemensamma problem. Genom att bryta våra vanliga arbetsmönster och samarbeta över teamgränserna i en lagom tävlingsinriktad miljö tog vi fram flera lösningar som skulle kunna produktionssättas efter vissa justeringar. Om vi gör detta regelbundet kan vi se till att vårt interna arbete är lika smidigt som lösningarna vi bygger åt kunderna.

Författare

George Montagu, Ed Jeffery, Nicolas Franco Gonzalez