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

  1. Descubre las URLs a ingerir (sitemap, crawl o lista curada)
  2. Envíalas en un único trabajo /batch/distill
  3. Espera a que termine (polling o Webhook)
  4. Embebe el markdown de 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: true si el contenido cambia con frecuencia

Relacionado

Esta receta se está ampliando con la integración de vector stores (Pinecone / Weaviate / pgvector) — vuelve pronto.