Skräddarsydda chatt-bottar kräver mer än API-anslutning:
Att implementera en intelligent chattbot är i dag ett naturligt steg för många företag som vill förbättra sin digitala kundinteraktion. Men bakom en bot som faktiskt levererar värde ligger ofta ett betydande tekniskt och strategiskt arbete – särskilt när lösningen ska anpassas för två helt olika verksamheter, som en hälsokostbutik och en musikfestival.
I mitt arbete med att utveckla chattbottar för dessa två kunder har jag fått tillämpa både teoretisk och praktisk kunskap inom språkmodeller, med särskilt fokus på RAG-teknik och frågestyrd datatillgång.
Utgångspunkten: Det handlar inte bara om att koppla upp sig mot ett API
Många ser ChatGPT:s API som en snabb väg till en AI-assistent, men i praktiken krävs betydligt mer för att skapa en bot som faktiskt är meningsfull i ett specifikt sammanhang. Det första steget är att identifiera vilken information AI:n ska ha tillgång till. Även om det är tekniskt möjligt att efterträna en språkmodell på en hel webbplats, är det sällan praktiskt. Modellträning är resursintensivt, kräver regelbundna uppdateringar och medför risker som överträning och ökade hallucinationer – det vill säga när modellen “gissar” svar istället för att ge faktabaserad information.
RAG – ett effektivt alternativ till modellträning
Ett mer flexibelt tillvägagångssätt är så kallad Retrieval-Augmented Generation (RAG). Här fungerar AI:n som en slags semantisk sökmotor: den får en fråga, hämtar relevant information från externa källor – ofta organisationens egen webbplats – och genererar ett svar baserat på den kontext den fått. Det är en kraftfull metod som gör det möjligt att använda generella språkmodeller i mycket specifika sammanhang, utan att behöva träna om modellen från grunden.
Utmaning: Att välja rätt information och rätt mängd
Trots RAG:s fördelar kvarstår en central utmaning: språkmodeller har ett begränsat “kontextfönster”, alltså hur mycket information de kan bearbeta samtidigt. Det innebär att det inte är möjligt att skicka med hela webbplatsens innehåll i varje förfrågan. Därför delas innehållet upp i mindre segment – så kallade chunks – som indexeras med hjälp av semantiska embeddings.
När en användare ställer en fråga gör systemet en semantisk sökning bland dessa chunks och väljer ut de mest relevanta som underlag för AI:ns svar. Problemet är att varje enskilt chunk innehåller relativt lite information, och endast ett fåtal kan skickas med i varje anrop. Det gör det svårt för AI:n att skapa mer omfattande översikter, exempelvis att lista alla produkter som innehåller C-vitamin.
Lösningen: Förberäknade sammanställningar
För att lösa detta utvecklade vi ett system där vissa typer av data förbereds i förväg. Exempelvis kan vi skapa tabeller över butikens produkter där vi på förhand sammanfattar innehåll, användningsområden och relevanta effekter. Dessa tabeller genereras med hjälp av AI, men körs endast periodvis, eftersom bearbetningen är resurskrävande.
Vid mer komplexa frågor – som att identifiera produkter som “motverkar trötthet och främjar mental skärpa” – används dessa tabeller för att poängsätta och sortera information innan resultatet sparas i ett nytt, sökbart format som kan återanvändas av chattbotten.
Nästa steg: En mer generell lösning
Min långsiktiga målsättning är att göra processen mer generisk och mindre beroende av manuell anpassning för varje ny webbplats. Detta innebär bland annat att låta AI först analysera webbplatsens struktur, kategorisera innehåll, identifiera målgrupper och skapa relevanta sammanfattningar. Från dessa sammanställningar genereras hypotetiska användarfrågor som i sin tur används för att skapa förberäknade svarspaket.
På detta sätt kan jag bygga ett AI-stöd som är både snabbt, relevant och skalbart – oavsett om användaren söker ett kosttillskott mot trötthet eller letar efter nästa artistsläpp på en festival.
