Skip to main content
Een model alleen kan geen vragen beantwoorden over gebeurtenissen na de cutoff van zijn training, of een bron citeren. De oplossing is grounding: haal relevante webcontent op op het moment van de aanvraag en geef die als context door aan het model. Deze gids laat het patroon zien met Novita AI-zoeken voor ophalen en de LLM API voor synthese — allemaal achter één API-sleutel.

Wat is RAG?

Retrieval-augmented generation (RAG) is het patroon achter elk gefundeerd antwoord hier: in plaats van te vertrouwen op wat het model tijdens training heeft onthouden, haal je relevante documenten op tijdens de request en verrijk je de prompt ermee, zodat het model zijn antwoord genereert op basis van die actuele, verifieerbare context. Die ophaalstap is precies wat AI Search biedt. Het web wordt je kennisbank, en je hoeft geen vectordatabase te bouwen of te onderhouden om te beginnen — een search-call retourneert de passages, en de LLM doet de rest. Wanneer je later retrieval over je eigen privédocumenten wilt, is dezelfde vorm in drie stappen van toepassing; je vervangt web search gewoon door een vector store. RAG levert je drie dingen op die een kaal model niet kan bieden:
  • Actualiteit — antwoorden weerspiegelen content die is gepubliceerd na de training cutoff van het model.
  • Attributie — elke bewering kan terugwijzen naar een bron-URL die de gebruiker kan controleren.
  • Minder hallucinatie — het model gronden in opgehaalde tekst voorkomt dat het feiten verzint.

Hoe grounding werkt

Eén RAG-beurt volgt drie stappen:
  1. Search (retrieve) het web naar pagina’s die relevant zijn voor de vraag.
  2. Extract (augment) de content die je nodig hebt — snippets of volledige paginetekst — naar de prompt.
  3. Synthesize (generate) een antwoord door die content aan een LLM door te geven en te vragen bronnen te citeren.
Je kunt dit doen met twee calls (search + LLM) of zelfs één, aangezien zowel Exa als Tavily een antwoord voor je kunnen synthetiseren. Kies op basis van hoeveel controle je nodig hebt over de uiteindelijke formulering en citaties.

Laat de provider het antwoord schrijven

De snelste route. Tavily’s Search retourneert een door een LLM gegenereerd antwoord wanneer je instelt include_answer, en Exa biedt een speciale Antwoord endpoint. Eén aanroep, geen orchestratie.
Gebruik dit wanneer je een goed antwoord wilt met minimale code. Kies voor de aanpak eerst ophalen en dan synthetiseren hieronder wanneer je controle nodig hebt over het model, de toon, de uitvoerindeling of hoe citaties worden gepresenteerd.

Ophalen, dan synthetiseren met een LLM

Dit geeft je volledige controle. Zoek naar bronnen en geef de resultaten vervolgens aan de LLM-API met instructies om uitsluitend op basis van die context te antwoorden en elke bewering te citeren.
Dezelfde flow werkt met Exa Search — vervang de route door /v3/exa/search en lees text uit elk resultaat in plaats van raw_content.

Retrievalkwaliteit afstemmen

De kwaliteit van een gefundeerd antwoord hangt veel meer af van wat je ophaalt dan van het model. Een paar knoppen met grote impact:
  • Actualiteit. Beperk bij tijdgevoelige vragen op datum. Tavily biedt time_range en start_date/end_date; Exa stelt beschikbaar startPublishedDate/endPublishedDate. Dit houdt verouderde pagina’s buiten de context.
  • Bronvertrouwen. Gebruik include_domains/excludeDomains om het ophalen te beperken tot bronnen die je vertrouwt (officiële documentatie, gerenommeerde uitgevers) en sites van lage kwaliteit buiten te houden.
  • Onderwerphints. Tavily’s topic (news, finance, general) en Exa’s category stuur de engine naar het juiste soort resultaat.
  • Context op de juiste grootte brengen. Beperk geëxtraheerde tekst (Tavily chunks_per_source, Exa maxCharacters) zodat je genoeg signaal doorgeeft zonder het contextvenster van het model of je tokenbudget te overschrijden.

Zoeken vs. extraheren vs. crawlen

Kies de retrieval-primitief die past bij je behoefte:
  • Zoeken — je hebt een vraag en moet relevante pagina’s ontdekken. Het standaard startpunt.
  • Extraheren / Inhoud — je kent de URL’s al en wilt er schone tekst uit halen. Goed voor grounding op een vaste set documenten. Zie Tavily Extract en Exa Inhoud.
  • Crawlen / in kaart brengen — je wilt een hele site of sectie inlezen door links te volgen. Geschikt om offline een kennisbank op te bouwen. Zie Tavily Crawl en Tavily Map.
Voor een completere agent die iteratief zoekt en redeneert over veel bronnen, zie de DeepSearcher-integratie.

In productie nemen

  • Handel lege resultaten af. Als search niets relevants retourneert, laat het model dan zeggen dat het niet kan antwoorden in plaats van er een te verzinnen. De bovenstaande system prompt doet dit.
  • Cache wanneer je kunt. Identieke queries retourneren vergelijkbare resultaten; retrieval cachen verlaagt kosten en latency.
  • Let op rate limits. Retrieval en LLM-calls worden afzonderlijk gelimiteerd — een search request gaat niet ten koste van je LLM-quota. Doe een back-off bij 429 voor beide. Zie LLM-snelheidslimieten voor de LLM-kant.
  • Houd sleutels server-side. Je Novita-sleutel authenticeert elke aanroep hier — lever die nooit mee in client-side code.
Laatst gewijzigd op 10 augustus 2026