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
- URLs für die Aufnahme entdecken (Sitemap, Crawl oder kuratierte Liste)
- In einem einzigen
/batch/distill-Job einreichen - Auf Abschluss warten (Polling oder Webhook)
markdownjedes 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: trueden Cache umgehen, falls sich Inhalte häufig ändern
Verwandt
Dieses Rezept wird um Vector-Store-Anbindungen (Pinecone / Weaviate / pgvector) erweitert — bald wieder vorbeischauen.