Alle artikelen

Waarom ChatGPT alleen niet genoeg is voor aanbestedingen

Een algemeen LLM kan een PDF samenvatten. Het kan niet betrouwbaar tien leveranciers vergelijken, de juiste alinea citeren, of de clausule markeren die je €200k kost.

De misleidende demo

Sleep een aanbestedings-PDF in ChatGPT, vraag "vat de risico's samen", en je krijgt een plausibel antwoord. Het lijkt opgelost.

Dat is het niet. Probeer dezelfde prompt op tien varianten van hetzelfde document — net iets anders geformatteerd, OCR-gescand, met bijlagen in een aparte file — en de antwoorden lopen uiteen. Erger nog: het model verzint vrolijk clausules die er niet staan. Voor een inkoopbeslissing van miljoenen is "klinkt logisch" de verkeerde lat.

Drie dingen die een algemeen LLM niet geeft

1. Vergelijkbare structuur. Een offerte van leverancier A en B deelt geen artikelnummers, eenheden of terminologie. Vergelijken betekent normaliseren — STABU-codes, eenheden (m³ vs. m3 vs. kubieke meter), korting-afhandeling. Generieke chat doet dat niet; daar zou je een laag bovenop moeten bouwen.

2. Antwoorden met bron. Elke uitspraak die Umbiko doet wijst naar de pagina en alinea waar 'ie vandaan komt. Klik door en je ziet het. Generieke chat antwoordt zonder bronverwijzing — dat is per definitie hallucinatie-risico.

3. Strikte data-isolatie per klant. Een multi-tenant inkooptool moet harde scheiding hebben. Klant A ziet nooit offertes van klant B, traint nooit op die data, krijgt nooit een gecached antwoord uit een andere tenant's sessie. Dat is een system-design-probleem, niet een prompt-engineering-probleem.

Wat we wél doen

Umbiko is gebouwd rond een retrieval-pipeline (extraheren → normaliseren → embedden → zoeken → antwoorden met citaten) die specifiek is voor inkoopdocumenten. Het LLM is de laatste stap, niet de eerste. Het meeste werk zit in de saaie lagen erboven.

Daarom is onze foutmarge op "vind de boeteclausule" in de lage enkele cijfers — gemeten, geen onderbuik.

Er is iets misgegaan. Herladen

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.