← LLM- en AI-experimenten

Een kennisbank voor mijn assistent, met een menselijke poort

Mijn RAG-kennisbank staat in Git, niet in een database. AI mag kennis voorstellen als concept, maar alleen wat ik goedkeur en merge, komt in de vectorstore.

Git als bron van waarheid

De kennisbanken die mijn assistent raadpleegt, staan als Markdown in een Git-repository. De vectorstore in Open WebUI (PostgreSQL met pgvector, embeddings lokaal) is een afgeleide: een publicatieworkflow vult hem uit de repository.

Elk document beschrijft één feit, met metadata: onderwerp, scope (werk of homelab), status en bron.

AI stelt voor, ik keur goed

Na een sessie waarin iets is uitgezocht, destilleert een commando (/rag-save) de bevindingen tot kennisdocumenten:

  1. Ze krijgen status: draft en gaan naar een aparte branch.
  2. Een validatiescript controleert de metadata en de structuur.
  3. Er komt een pull request naar main.
  4. Ik lees, pas aan en merge. Alleen documenten op main met status: approved worden geïndexeerd.

Die poort is bewust. Een taalmodel trekt soms een verkeerde conclusie, en een verkeerde conclusie in een kennisbank komt later terug als "feit". De menselijke stap houdt dat tegen.

Wat ik leerde

  • Zoek eerst wat er al is. Mijn eerste ontwerp had een eigen database-schema, een embed-stap en een service-account. Allemaal de verkeerde laag: de pijplijn bestond al en wilde alleen Markdown.
  • Publiceren op basis van een diff is fragiel. De workflow keek alleen naar de laatste merge. Een draft die meekwam omdat er op de branch verder was gepusht, blokkeerde de publicatie. De les: één branch per batch, en pas verder pushen na de merge.