Recipes

RAG-Wissensdatenbank

Baue einen Vector Store aus einer Dokumentations-Site mit Batch-Distill

Verwandle jede Dokumentations-Site in eine durchsuchbare RAG-Wissensdatenbank. Reiche URLs als Batch ein, frage den Status ab (oder nutze Webhooks) und indiziere das resultierende Markdown anschließend in deinem Vector Store.

Ablauf

  1. URLs für die Aufnahme entdecken (Sitemap, Crawl oder kuratierte Liste)
  2. In einem einzigen /batch/distill-Job einreichen
  3. Auf Abschluss warten (Polling oder Webhook)
  4. markdown jedes Ergebnisses in deinen Vector Store einbetten

Implementierung

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"])

Tipps

  • Verwende include: ["metadata"], damit jedes Ergebnis Title / Description für Chunk-Header mitbringt
  • Bei mehr als 100 URLs Webhooks dem Polling vorziehen — siehe Webhooks
  • Erneutes Ausführen auf denselben URLs ist unproblematisch; mit forceRefresh: true den Cache umgehen, falls sich Inhalte häufig ändern

Verwandt

Dieses Rezept wird um Vector-Store-Anbindungen (Pinecone / Weaviate / pgvector) erweitert — bald wieder vorbeischauen.