AI om je ideeën vast te leggen

René Krewinkel
28-02-2024

Dat ik dol ben op de command line, zal geen geheim (meer) zijn. En dat ik ook met grote regelmaat mijn eigen productivity tooltjes bouw ook niet. Nieuw is dat ik de laatste tijd Obsidian geadopteerd heb als mijn "Second Brain" en dat ik het steeds meer gebruik om niet alleen mijn ideeën en gedachtenspinsels ergens te noteren, maar ook om informatie over mijn projecten, trainingsmodules, planning en todo's bij te houden. Kortom: knowledge management is er ook bij mij ingeslopen.

Binnen de opleiding in het Educom traineeship werk ik ook met zogenaamde "specials": dit zijn korte modules die een hele tool of concept hoog technisch beschrijven en uitwerken. Speciaal bedoeld voor de trainees die nog wat extra uitdagingen zoeken. Zo is er bijvoorbeeld een module waarin een generieke API server gebouwd wordt met Express, Docker en MongoDB, een module zoomt in op het gebruik van Vector Embeddings, maar ook een eigen versie van het Wack-a-Mole spelletje

Nu heb ik, en dat is meestal als ik zit te programmeren of in ieder geval mijn handen op het toetsenbord heb, dat me zo, boem, uit het niets ineens wat dingen te binnen schieten die me kunnen helpen een totaal ongerelateerd iets op te lossen, of me kunnen helpen met een verdieping van het actuele thema op mijn scherm, of...

En, je kent het wel, dat soort ideeën knallen je hoofd in en zodra je drie keer met je ogen geknipperd hebt, zijn ze ook net zo snel weer foetsie. Soms is dat niet erg en misschien zelfs wenselijk, maar heel soms is dat ook vervelend, want het was ECHT EEN GOED IDEE.

Dat gaan we oplossen...

Dus aan de slag met Obsidian Canvas en even mind-mappen wat het plan is.

Plan

Schrijf een CLI tool die een kort idee als argument meekrijgt. Dit idee wordt vervolgens naar een AI GPT gestuurd om er een korte summary van te maken. Daarnaast wordt er in youtube naar een aantal filmpjes over het thema gezocht. Met dat resultaat wordt er in een speciale directory in de Obsidian-vault een (markdown) note aangemaakt. Mèt een keurige front matter, de gegenereerde summary èn een lijstje met 5 relevante youtube filmpjes over de materie.

Nu ga ik mijn versie in Rust maken zodat ik díe kennis ook weer een beetje kan bijspijkeren, maar van het gehele plan ga ik vervolgens een 'special' maken, zodat een trainee het zelf kan bouwen in iedere gewenste taal.

Na de onvermijdelijke beren bevochten te hebben: youtube wil toch iets specifiekere zoektermen dan een vage omschrijving - dus ook hier ChatGPT een zoekterm laten verzinnen voor het thema en, los van dat ChatGPT toch wel regelmatig aan het hallucineren slaat, dat had een beter effect.

Het resultaat is best aardig. Zo nu en dan werkt de gebruikte youtube library niet naar behoren, maar het is dan ook niet de officiële, maar voor de rest doet het tooltje wat het moet doen. Het idee komt in mijn "Inbox" terecht, waar ik het verder kan verwerken op het moment dat ik er tijd voor heb of ik ermee aan de slag kan gaan. Tot nu toe moet ik zeggen dat de summary die Chat GPT genereert best aardig is. Ook Ollama genereert, zelfs met het tiny model redelijk adequate samenvattingen.

Er staat nog een aantal verbeterpunten op het lijstje (zo wil ik bijvoorbeeld Ollama als primaire AI gaan bron gebruiken, dan hoeft niemand OpenAI te betalen en kun je je eigen model gebruiken). De volledige code vind je op mijn GitHub pagina, en andere verbeteringen en toevoegingen zijn altijd welkom!

Nu nog integreren in NeoVim en/of Visual Studio code. Maar dat is iets voor de volgende keer.