Recipes
Base de conocimiento RAG
Construye un vector store a partir de un sitio de documentación usando batch distill
Convierte cualquier sitio de documentación en una base de conocimiento RAG consultable. Envía URLs en lote, haz polling hasta completar (o usa Webhooks) y luego indexa el Markdown resultante en tu vector store.
Flujo
- Descubre las URLs a ingerir (sitemap, crawl o lista curada)
- Envíalas en un único trabajo
/batch/distill - Espera a que termine (polling o Webhook)
- Embebe el
markdownde cada resultado en tu vector store
Implementación
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"])Consejos
- Usa
include: ["metadata"]para que cada resultado lleve title / description en los encabezados de los chunks - Para más de 100 URLs, prefiere Webhooks en lugar de polling — ver Webhooks
- Volver a ejecutar sobre las mismas URLs está bien; salta la caché con
forceRefresh: truesi el contenido cambia con frecuencia
Relacionado
Esta receta se está ampliando con la integración de vector stores (Pinecone / Weaviate / pgvector) — vuelve pronto.