Recipes
Docs a llm.txt
Convierte cualquier sitio de documentación en un único archivo Markdown listo para LLM
Distill un sitio de documentación completo en un único llm.txt que puedes pegar en cualquier contexto de LLM, pipeline de RAG o modelo local. Útil para librerías desconocidas, wikis internos y documentación de producto.
Flujo
- Distill la página índice con
include: ["links"]para descubrir todas las URLs enlazadas - Filtra la lista de enlaces por patrón de URL (p. ej.
/docs/,/guide/) - Pasa las URLs filtradas a
/batch/distill - Concatena el Markdown resultante en un solo archivo
Implementación
import httpx, re
API = "https://openapi.thunderbit.com/openapi/v1"
H = {"Authorization": "Bearer YOUR_API_KEY"}
# 1. Pull the index page + outbound links
index = httpx.post(f"{API}/distill",
headers=H,
json={"url": "https://docs.example.com",
"include": ["links"]}).json()["data"]
# 2. Filter to docs paths
doc_urls = [u for u in index["links"] if re.search(r"/docs/", u)]
# 3. Batch distill
job = httpx.post(f"{API}/batch/distill",
headers=H,
json={"urls": doc_urls}).json()["data"]
# 4. Poll, concatenate
# (poll loop omitted; see RAG Knowledge Base recipe)
with open("llm.txt", "w") as f:
for r in job["results"]:
if r["status"] == "SUCCEEDED":
f.write(f"# {r['url']}\n\n{r['markdown']}\n\n---\n\n")Consejos
- Añade un límite de tamaño — un
llm.txtde más de ~1 MB empieza a inflar el presupuesto de tokens - Ordena por URL o por sección para diffs estables entre ejecuciones
- Combínalo con un job de CI para mantener
llm.txtactualizado conforme cambia la documentación origen
Relacionado
- Base de conocimiento RAG — los mismos datos, vector store en lugar de archivo plano
- Distill vs Extract
Esta receta se está ampliando con estrategias de chunking y deduplicación — vuelve pronto.