Statische RAG kan geen antwoord geven op “wat is er deze week gebeurd”. Het toevoegen van een live websearch-stap met een Google Search API onderbouwt je LLM met actuele, citeerbare bronnen. Hier is het patroon, met serp.cheap.
De architectuur
user query
→ SERP API search (top N results) ← live, fresh
→ fetch the result pages
→ chunk + embed on the fly
→ retrieve most relevant chunks
→ LLM answers, citing the source URLs
Stap 1 — verse bronnen ophalen
import requests
def web_sources(query, n=5, gl="us"):
data = requests.post(
"https://api.serp.cheap/v1/search",
headers={"X-API-Key": "YOUR_KEY"},
json={"q": query, "gl": gl},
timeout=30,
).json()
return [
{"title": r["title"], "url": r["link"], "snippet": r.get("snippet", "")}
for r in data["organic"][:n]
]
Stap 2 — ophalen en chunken
Haal elke url op, extraheer de hoofdtekst en splits in chunks van ~500 tokens. (Gebruik je bestaande loader/splitter — bijvoorbeeld trafilatura + een text splitter.)
Stap 3 — embedden, ophalen, genereren
Embed de chunks, haal de top-k op voor de query en geef ze door aan het model met de instructie om de bron-URL’s te citeren. Omdat de bronnen afkomstig zijn uit de live SERP, weerspiegelt het antwoord wat gezaghebbende pagina’s momenteel zeggen.
Waarom een goedkope SERP API hier belangrijk is
RAG voert bij elke query een zoekopdracht uit. Tegen $0.0006 per verse zoekopdracht (de helft gecached) houdt serp.cheap de ophaalkosten per antwoord verwaarloosbaar — en terugkerende identieke queries raken automatisch de cache.
Snelle weg met alleen snippets
Voor lichtgewicht onderbouwing kun je het ophalen van pagina’s overslaan en het model direct de SERP-titels + snippets voeden — één API-aanroep, geen crawling. Het is goedkoper en vaak voldoende voor snelle feitelijke antwoorden.