Recipes
Docs in llm.txt
Converti qualsiasi sito di documentazione in un singolo file Markdown pronto per LLM
Distilla un intero sito docs in un unico llm.txt da incollare in qualsiasi contesto LLM, pipeline RAG o modello locale. Utile per librerie sconosciute, wiki interni e documentazione di prodotto.
Flusso
- Distilla la pagina indice con
include: ["links"]per scoprire tutti gli URL collegati - Filtra la lista di link per pattern URL (es.
/docs/,/guide/) - Passa gli URL filtrati a
/batch/distill - Concatena il Markdown risultante in un singolo file
Implementazione
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")Suggerimenti
- Aggiungi un cap sulla dimensione — un
llm.txtoltre ~1 MB inizia a gonfiare i budget di token - Ordina per URL o per sezione per diff stabili tra le esecuzioni
- Abbinalo a un job CI per mantenere
llm.txtaggiornato man mano che i docs sorgente cambiano
Correlati
- Knowledge Base RAG — stessi dati, vector store invece di un file flat
- Distill vs Extract
Questa ricetta è in fase di espansione con strategie di chunking e deduplicazione — torna presto.