Recipes
Base de connaissances RAG
Construire un vector store à partir d'un site de documentation avec batch distill
Transforme n'importe quel site de documentation en base de connaissances RAG interrogeable. Soumets les URLs en lot, attends la fin (ou utilise des Webhooks), puis indexe le Markdown obtenu dans ton vector store.
Flux
- Découvre les URLs à ingérer (sitemap, crawl ou liste curatée)
- Soumets-les dans une seule tâche
/batch/distill - Attends la fin (polling ou Webhook)
- Embarque le
markdownde chaque résultat dans ton vector store
Implémentation
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"])Astuces
- Utilise
include: ["metadata"]pour que chaque résultat porte title / description en en-tête de chunk - Pour 100+ URLs, préfère les Webhooks au polling — voir Webhooks
- Relancer sur les mêmes URLs est sans risque ; bypass le cache avec
forceRefresh: truesi le contenu change souvent
Liens
Cette recette est en cours d'extension avec le câblage vector store (Pinecone / Weaviate / pgvector) — repasse bientôt.