Voor een project met VRT Creative Lab moest ik onlangs alle data die Facebook over mij had downloaden. Het  viel me meteen op dat ik de afgelopen 13 jaar nogal wat heb zitten  chatten.

De  gesprekken herlezen voelde als een coming-of-age-verhaal van adolescent  naar volwassene (of toch min of meer). Exen en de bijhorende drama’s  passeerden, maar ook wilde feesten en andere uitspattingen. Hoogtes en  laagtes uit mijn leven van mijn 23 tot mijn 36.

Ik vroeg me af wat het zou geven als ik al mijn chatgesprekken prijsgaf. Bovendien haalde ik inspiratie uit “Be Right Back”, mijn favoriete aflevering van de fictiereeks “Black Mirror”.  Daarin bestelt een weduwe een virtuele kopie van haar overleden man,  gebaseerd op alles wat hij ooit gezegd heeft. Dat donkere, dystopische  uitgangspunt, gekoppeld aan mijn nieuwsgierigheid over mijn eigen chats,  was het beginpunt van Virtuele Tim Broddin.

Uitdaging: kan ik mezelf in een chatbot steken?

Ik probeerde het eerste met AI-algoritme Seq2Seq.  Kort door de bocht is dit een algoritme dat zich uitstekend leent voor  vertalingen, van de ene sequentie naar een andere. Als je het algoritme  bijvoorbeeld leert wat ik allemaal op “Alles goed?” heb geantwoord, zou  je in principe na heel lang trainen variaties op mijn antwoorden kunnen  krijgen. Ofwel: na heel lang trainen op heel veel mogelijke antwoorden  zou het algoritme dingen kunnen zeggen die ik zelf nooit gezegd heb.

Maar  deze aanpak faalde glorieus. Ik huurde bij Google een server en liet  die 72 uur lang kauwen op alles wat ooit tegen mij gezegd is en mijn  antwoorden daarop. Dit was het resultaat:

AI vindt alles grappig

Mijn  gratis Google Credits waren ondertussen op, dus liet ik de AI-piste  varen. Het zag er niet naar uit dat er ooit iets zinnigs uit zou komen,  en hoewel het GPT2-algoritme veelbelovend is, had ik geen zin om nog eens dagen te moeten wachten om uiteindelijk onzin te lezen.

Andere boeg

Tijd voor een nieuwe aanpak dus. Ik koos ervoor om alles wat ooit tegen mij gezegd is geweest te indexeren in ElasticSearch,  samen met de mogelijke antwoorden. Wanneer je iets typt, gaat hij  hierin zoeken, voegt hij wat magische chaos toe en kiest dan een  mogelijk antwoord. En dat geeft vaak hilarische resultaten:

Sorry Anne Servaes

Zodra mijn algoritme en bijhorende backend klaar waren, begon ik aan de voorkant een website te bouwen. Daarvoor koos ik NextJS, het next level framework voor React.

OK, even tussendoor. Serieus, als je met React bezig bent, stop dan met create-react-app en stap over naar NextJS. Het laat je server-side renderen en static sites genereren, zonder dat je er moeite voor moet doen. En je hebt ook gratis hosting door het bijhorende platform Zeit Now.

In  de front-end stak ik ook enkele kleine details waar ik al lang mee wou  experimenteren, maar geen geschikt project voor vond, zoals particles.js en Dark Mode.

Ta-daaa!

Dit is ‘m uiteindelijk geworden. Je vindt mijn site hier:

Virtuele Tim Broddin
Chat met een virtuele versie van de echte Tim Broddin. Altijd en overal.

(Dit artikel verscheen eerder op het Mediumkanaal van het Creative Lab)