Recipes

RAG-kennisbank

Bouw een vector store vanuit een documentatiesite met behulp van batch distill

Verander elke documentatiesite in een doorzoekbare RAG-kennisbank. Dien URLs in batch in, poll tot het klaar is (of gebruik webhooks) en indexeer de resulterende Markdown vervolgens in je vector store.

Flow

  1. Ontdek URLs om te ingesten (sitemap, crawl of samengestelde lijst)
  2. Dien ze in een enkele /batch/distill-taak in
  3. Wacht op voltooiing (poll of Webhook)
  4. Embed de markdown van elk resultaat in je vector store

Implementatie

import httpx, time

API = "https://openapi.thunderbit.com/openapi/v1"
H = {"Authorization": "Bearer YOUR_API_KEY"}

urls = [f"https://docs.example.com/page-{i}" for i in range(50)]
job = httpx.post(f"{API}/batch/distill",
                 headers=H,
                 json={"urls": urls, "include": ["metadata"]}).json()
batch_id = job["data"]["id"]

while True:
    status = httpx.get(f"{API}/batch/distill/{batch_id}", headers=H).json()["data"]
    if status["status"] in ("COMPLETED", "FAILED", "CANCELLED"):
        break
    time.sleep(10)

for r in status["results"]:
    if r["status"] == "SUCCEEDED":
        embed_and_store(r["url"], r["markdown"])

Tips

  • Gebruik include: ["metadata"] zodat elk resultaat title / description bij zich draagt voor chunk-headers
  • Voor 100+ URLs heeft Webhook de voorkeur boven polling — zie Webhooks
  • Opnieuw uitvoeren op dezelfde URLs is prima; omzeil de cache met forceRefresh: true als de inhoud vaak verandert

Gerelateerd

Dit recept wordt uitgebreid met vector store-bedrading (Pinecone / Weaviate / pgvector) — kom binnenkort terug.