Draait in een apart worker-proces (ADR-010). Standaard incrementeel: alleen nieuwe of gewijzigde pagina's (sitemap-lastmod). Met “Reset” wis je de index en herindexeer je alles. Chat blijft beschikbaar.
Alleen geautoriseerde gebruikers. Wordt meegegeven aan de API.
Unieke pagina's per domein. 0 = hard cap 2000.
Overzicht van websites waarmee de chatbot is gevoed.
| Bron (domein) | Pagina's | Nieuwste pagina | Laatst geïndexeerd |
|---|
Jarvisje is een chatbot rondom de wereld van AI — geen algemene assistent. Hij kent de artikelen op edwinvandillen.nl en jeroenteunisse.nl, verwijst naar concrete posts en verzint geen derde bron. Je vraag blijft lokaal: niet naar ChatGPT of Claude.
Kennisbank wordt geladen…
Het model is niet getraind op de blogs. Eerst zoekt de app fragmenten; pas daarna mag Gemma antwoorden.
De app embedt je vraag, zoekt in wat al gelezen is, bouwt een prompt en laat Gemma daar een antwoord van maken.
Een crawler leest de blogs. Het embedding-model legt betekenis vast. Zonder deze loop heeft Gemma niets om op te steunen.
De kennisbank zit tussen jou en Gemma in. Gemma ziet alleen wat de app heeft opgehaald — ze zoekt niet zelf.
Een embedding zet tekst om in een ligging: betekenis als plek. “Harnessing” en “AI betrouwbaar maken” liggen dicht bij elkaar. “Pasta recepten” ligt ver weg en wordt niet opgehaald.
Zonder hetzelfde embedding-model bij vragen én indexeren zou zoeken op betekenis niet werken.
Dit gebeurt niet tijdens het chatten. Indexeren leest de blogs; daarna kan Gemma erop steunen.
Nieuwe posts komen binnen via indexeren, niet via hertrainen van Gemma. Als de kennisbank leeg is, zegt de chat dat eerlijk.
Eén pagina, geen zwaar frontend-framework. Gemma zit niet in de app-container.
UI, orchestratie, vraag-embeddings (CPU), kennisbank. Indexeren draait in een apart proces op de GPU.
Alleen het taalmodel, rechtstreeks op de GPU. Model wisselen zonder de app opnieuw te bouwen.
Onder een antwoord staat een balk. Die laat zien hoe dicht de tekst van het antwoord bij een artikel van Edwin of Jeroen ligt. Een vollere balk ligt dichterbij. Een klik op de balk in de chat brengt je naar deze uitleg.
0,75 of hoger. Het antwoord ligt bijna op een artikel.
Vanaf 0,55. Er is een artikel in de buurt, maar het is geen bijna-citaat.
Onder 0,55. Het antwoord lijkt weinig op wat er in de blogs staat.
Het getal ernaast is het aantal bronnen dat je onder het antwoord ziet. Nul betekent dat er geen fragmentnummer of passende url aan hing.
Soms staat er een zin bij: het antwoord ligt dichter bij een artikel dan je vraag. Dat verschijnt als je vraag zelf ver van de blogs ligt (onder 0,55) en het antwoord minstens 0,10 dichter naar een artikel is geschoven. Dat artikel is dan niet vanzelf het antwoord op je vraag. Een lege bronnenlijst en een matige balk kunnen samen voorkomen: de tekst lijkt op een artikel, zonder ernaar te verwijzen.
De balk is geen kans dat de tekst klopt. Hij meet gelijkenis met de kennisbank.
Een lopend antwoord, een balk voor bronpassing, een eigen lijst met bronnen (niet alleen linkjes in de tekst), en hints die terugleiden naar de blogs.
Geen permanente chatgeschiedenis. Geen fine-tuning: nieuwe artikelen komen binnen via indexeren. Geen cloud-LLM.
Het antwoord verschijnt in de chat in stukjes. Het model zelf streamt nog niet token voor token.