Recipes
Docs vers llm.txt
Convertir n'importe quel site de documentation en un seul fichier Markdown prêt pour LLM
Distille un site de documentation entier en un seul llm.txt à coller dans n'importe quel contexte LLM, pipeline RAG ou modèle local. Utile pour des bibliothèques inconnues, des wikis internes et des docs produit.
Flux
- Distille la page d'index avec
include: ["links"]pour découvrir toutes les URLs liées - Filtre la liste de liens par motif d'URL (par exemple
/docs/,/guide/) - Envoie les URLs filtrées dans
/batch/distill - Concatène le Markdown obtenu dans un seul fichier
Implémentation
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")Astuces
- Ajoute un plafond de taille — un
llm.txtau-delà de ~1 Mo commence à gonfler les budgets de tokens - Trie par URL ou par section pour des diffs stables d'une exécution à l'autre
- Couple avec un job CI pour garder
llm.txtà jour quand les docs source changent
Liens
- Base de connaissances RAG — mêmes données, vector store au lieu d'un fichier plat
- Distill vs Extract
Cette recette est en cours d'extension avec des stratégies de chunking et de déduplication — repasse bientôt.