RAG-starterkit: vragen over documenten met hybride zoeken en gecontroleerde bronnen
Onze projecten voor vragen over documenten en kennisassistenten beginnen met deze starterkit. Hij regelt de ingestie, hybride retrieval, een agent die alleen uit je documenten antwoordt en een broncheck die bij twijfel het antwoord blokkeert (fail-closed).
Wat erin zit.
Event-driven ingestie
Uploads gaan naar Cloudflare R2. Celery-workers op Redis parsen, chunken en embedden elk document op de achtergrond, met retries en een status per bestand.
Hybride retrieval in Postgres
Vectorzoeken met pgvector en full-text search in Postgres, samengevoegd met reciprocal rank fusion en bij elke query gefilterd per gebruiker.
Antwoorden alleen uit documenten
Een PydanticAI-agent met een retrieval-tool en gestructureerde output. Hij verwijst naar de passages die hij gebruikte en zegt het als de documenten geen antwoord bevatten.
Fail-closed bronvalidator
Elke bronverwijzing moet wijzen naar een passage die in die beurt is opgehaald, en die letterlijk citeren. Faalt een check, dan krijgt de gebruiker een vooraf bepaald, veilig antwoord.
Eval-harness
Een testset en runner voor de kwaliteit van retrieval en antwoorden, zodat je wijzigingen in chunking, prompts of modellen meet voordat ze live gaan.
Ondertekende webhooks
Uitgaande events voor afgeronde ingestie en antwoorden, ondertekend zodat het ontvangende systeem kan controleren waar ze vandaan komen.
Hoe het in elkaar zit.
- 01
Uploaden
De Next.js-frontend stuurt een bestand naar de FastAPI-backend, die het opslaat in R2 en een ingestietaak in de wachtrij zet.
- 02
Verwerken
Een Celery-worker haalt de tekst eruit, splitst die in chunks met hun positie in het document, maakt embeddings en schrijft ze naar Postgres met een full-text-index.
- 03
Ophalen en antwoorden
Bij elke vraag roept de agent hybride zoeken aan. Dat draait vector- en keyword-zoeken parallel, voegt de rankings samen en voegt aangrenzende chunks toe voor context.
- 04
Valideren
Voordat het antwoord teruggaat, controleert de validator elke bronverwijzing tegen de chunks die in die beurt zijn opgehaald. Mislukte checks worden gelogd en vervangen door een veilig antwoord.
Een blik op de code.
Een vereenvoudigde broncheck: kan één verwijzing niet worden herleid tot opgehaalde tekst, dan wordt het hele antwoord afgewezen.
Gebouwd met.
Alle technologieHoor het zodra hij openbaar is.
We maken de RAG-starterkit klaar voor publicatie. Je krijgt één e-mail zodra hij beschikbaar is, en af en toe onze notities.