Cette page présente l'entièreté de la proposition llms.txt est traduite de sa version originale publiée sur llmstxt.org.
L'initiative llms.txt est une proposition visant à standardiser l'utilisation d'un fichier llms.txt pour fournir des informations afin d'aider les LLMs (les Large Language Models ou, en français, les Grand modèle de langage) à utiliser un site web au moment de l'inférence.
Ce fichier est conçu pour donner des instructions spécifiques à l'LLM au moment où il est en train de travailler avec le site web (c'est-à-dire, au moment de l'inférence).
En résumé, l'inférence ici n'est pas la phase d'apprentissage de l'LLM, mais plutôt le moment où il met ses connaissances en pratique pour comprendre et interagir avec un nouveau site web. Le fichier llms.txt est un guide pour l'aider dans cette tâche spécifique, au moment précis où il en a besoin.
A noter : l'idée que les robots d'IA suivent et lisent automatiquement le fichier llms.txt n'est pas encore une réalité généralisée. Contrairement au protocole robots.txt pour les moteurs de recherche, il n'existe pas d'adoption universelle ni de protocole standard pour que les modèles d'IA recherchent et traitent ce nouveau standard proposé.
Contexte
Les grands modèles linguistiques (LLMs) s'appuient de plus en plus sur les informations des sites web mais font face à une limitation critique : leurs fenêtres de contexte sont trop petites pour traiter la plupart des sites web dans leur intégralité. Convertir des pages HTML complexes avec navigation, publicités et parfois du JavaScript en texte brut adapté aux LLMs est à la fois difficile et imprécis.
Bien que les sites web servent à la fois les lecteurs humains et les LLMs, le fichier llms.txt permettrait de fournir aux LLMs des informations plus concises et de niveau expert, rassemblées dans un emplacement unique et accessible. Ceci est particulièrement important pour des cas d'utilisation comme les environnements de développement, où les LLMs ont besoin d'un accès rapide aux documentations et aux APIs.
De plus, l'initiative llms.txt propose que les pages des sites web contenant des informations qui pourraient être utiles à lire pour les LLMs fournissent une version markdown propre de ces pages à la même URL que la page originale, mais avec l'extension .md ajoutée (pour les URLs sans nom de fichier, il faudrait ajouter index.html.md à la place.)
Le projet FastHTML suit ces deux propositions pour sa documentation. Par exemple, voici le fichier llms.txt de la documentation FastHTML, un exemple d'une page de documentation HTML classique, ainsi que la même URL exacte mais avec l'extension .md.
Proposition
L'initiative llms.txt propose d'ajouter un fichier markdown /llms.txt à la racine des sites web afin de fournir un contenu adapté aux LLMs. Ce fichier offre de brèves informations de contexte, des instructions et des liens vers des fichiers markdown détaillés.
Le fichier llms.txt est lisible par les humains et les LLMs, mais il est également dans un format précis permettant des méthodes de traitement fixes (c'est-à-dire des techniques de programmation classiques telles que les analyseurs syntaxiques et les expressions régulières).
De plus, l'initiative propose que les pages des sites web contenant des informations qui pourraient être utiles à lire pour les LLMs fournissent une version markdown propre de ces pages à la même URL que la page originale, mais avec l'extension .md ajoutée (pour les URLs sans nom de fichier, il faudrait ajouter index.html.md à la place).
Le projet FastHTML suit ces deux propositions pour sa documentation. Par exemple, voici le fichier llms.txt de la documentation FastHTML, un exemple d'une page de documentation HTML classique, ainsi que la même URL exacte mais avec l'extension .md.
Cette proposition n'inclut aucune recommandation particulière sur la manière de traiter le fichier llms.txt car cela dépendra de l'application. Par exemple, le projet FastHTML a choisi d'étendre automatiquement le fichier llms.txt en deux fichiers markdown contenant le contenu des URLs liées, en utilisant une structure basée sur XML adaptée à une utilisation dans des LLMs tels que Claude. Les deux fichiers sont : llms-ctx.txt, qui n'inclut pas les URLs optionnelles, et llms-ctx-full.txt, qui les inclut. Ils sont créés à l'aide de l'application en ligne de commande llms_txt2ctx et la documentation FastHTML fournit des informations aux utilisateurs sur la manière de les utiliser.
La polyvalence des fichiers llms.txt signifie qu'ils peuvent servir de nombreux objectifs : aider les développeurs à s'orienter dans la documentation logicielle, jusqu'à donner aux entreprises un moyen de présenter leur structure, ou même à décomposer une législation complexe pour les parties prenantes. Ils sont tout aussi utiles pour les sites web personnels où ils peuvent aider à répondre aux questions sur un CV, pour les sites e-commerce afin d'expliquer les produits ou encore pour les écoles et les universités afin de fournir un accès rapide aux informations et aux ressources de leurs cours.
Format
Actuellement, le format le plus largement et facilement compris par les modèles de langage est le Markdown. Indiquer où trouver les fichiers Markdown clés constitue la première étape. Fournir une structure de base aide un modèle de langage à identifier la localisation des informations dont il a besoin.
Le fichier llms.txt est inhabituel car il utilise Markdown pour structurer les informations plutôt qu'un format structuré classique tel que XML. La raison en est que l'initiative LLMS.txt prévoie que de nombreux modèles de langage et agents liront ces fichiers. Cela dit, les informations contenues dans llms.txt suivent un format spécifique et peuvent être lues à l'aide d'outils programmatiques standard.
La spécification du fichier llms.txt concerne les fichiers situés à la racine d'un site web (ou, facultativement, dans un sous-chemin). Un fichier conforme à cette spécification contient les sections suivantes en Markdown, dans cet ordre précis :
- Un titre de niveau 1 (H1) avec le nom du projet ou du site. C'est la seule section obligatoire.
- Un bloc de citation (blockquote) contenant un court résumé du projet, incluant les informations clés nécessaires à la compréhension du reste du fichier.
- Zéro ou plusieurs sections Markdown (par exemple, des paragraphes, des listes, etc.) de tout type, à l'exception des titres, contenant des informations plus détaillées sur le projet et sur la manière d'interpréter les fichiers fournis.
- Zéro ou plusieurs sections Markdown délimitées par des titres de niveau 2 (H2), contenant des "listes de fichiers" d'URL où des informations plus détaillées sont disponibles.
- Chaque "liste de fichiers" est une liste Markdown contenant un hyperlien Markdown obligatoire [nom](url), suivi éventuellement de deux-points (:) et de notes concernant le fichier.
Voici un exemple fictif :
# Title
> Optional description goes here
Optional details go here
## Section name
- [Link title](https://link_url): Optional link details
## Optional
- [Link title](https://link_url)
Notez que la section Optional a une signification particulière : si elle est incluse, les URL qui y sont fournies peuvent être ignorées si un contexte plus court est nécessaire. Utilisez-la pour les informations secondaires qui peuvent être omises.
Normes existantes
Le fichier llms.txt est conçu pour coexister avec les standards web actuels. Tandis que les sitemaps listent toutes les pages pour les moteurs de recherche, llms.txt offre une vue d'ensemble sélectionnée pour les LLMs. Il peut compléter le fichier robots.txt en fournissant un contexte pour le contenu autorisé. Ce fichier peut également référencer le balisage de données structurées utilisé sur le site, aidant ainsi les LLMs à comprendre comment interpréter ces informations dans leur contexte.
L'approche de standardisation d'un chemin d'accès pour ce fichier suit celle de robots.txt et sitemap.xml.
Les fichiers robots.txt et llms.txt ont des fonctions et des objectifs différents :
- Le fichier robots.txt indique aux robots (comme ceux des moteurs de recherche) les parties d'un site web qu'ils peuvent explorer.
- Le contenu du fichier llms.txt sera fréquemment utilisé lorsque l'utilisateur demande des informations spécifiques. Cela se produit, par exemple, pour intégrer la documentation d'une librairie de code dans un projet ou lorsque l'utilisateur interroge un chatbot doté d'une fonction de recherche.
Nous prévoyons que llms.txt sera principalement utile pour l'inférence, c'est-à-dire au moment où un utilisateur recherche de l'aide, plutôt que pour l'entraînement. Cependant, si l'utilisation de llms.txt se généralise, de futurs entraînements pourraient également tirer parti des informations contenues dans ces fichiers.
Le fichier sitemap.xml est une liste de toutes les informations indexables et lisibles par des humains disponibles sur un site. Il ne s'agit pas d'un substitut à llms.txt car :
- Souvent, il ne listera pas les versions des pages lisibles par les LLMs.
- Il n'inclut pas les URL de sites externes, même si celles-ci pourraient être utiles pour comprendre les informations.
- Il couvrira généralement des documents qui, dans leur ensemble, seront trop volumineux pour tenir dans la fenêtre de contexte d'un LLM et inclura beaucoup d'informations qui ne sont pas nécessaires à la compréhension du site.
Exemple
Voici un exemple de fichier llms.txt : c'est ici une version réduite du fichier utilisé pour le projet FastHTML.
# FastHTML
> FastHTML is a python library which brings together Starlette, Uvicorn, HTMX, and fastcore's `FT` "FastTags" into a library for creating server-rendered hypermedia applications.
Important notes:
- Although parts of its API are inspired by FastAPI, it is *not* compatible with FastAPI syntax and is not targeted at creating API services
- FastHTML is compatible with JS-native web components and any vanilla JS library, but not with React, Vue, or Svelte.
## Docs
- [FastHTML quick start](https://answerdotai.github.io/fasthtml/tutorials/quickstart_for_web_devs.html.md): A brief overview of many FastHTML features
- [HTMX reference](https://raw.githubusercontent.com/path/reference.md): Brief description of all HTMX attributes, CSS classes, headers, events, extensions, js lib methods, and config options
## Examples
- [Todo list application](https://raw.githubusercontent.com/path/adv_app.py): Detailed walk-thru of a complete CRUD app in FastHTML showing idiomatic use of FastHTML and HTMX patterns.
## Optional
- [Starlette full documentation](https://gist.githubusercontent.com/path/starlette-sml.md): A subset of the Starlette documentation useful for FastHTML development.
Pour créer des fichiers llms.txt efficaces, nous vous recommandons de considérer les points suivants :
- Utilisez un langage concis et clair.
- Lorsque vous ajoutez des liens vers des ressources, incluez des descriptions brèves et informatives.
- Évitez les termes ambigus ou le jargon non expliqué.
- Utilisez un outil qui développe votre fichier llms.txt en un fichier de contexte LLM et testez plusieurs modèles de langage pour vérifier s'ils peuvent répondre à des questions concernant votre contenu.
Répertoires
Voici quelques sites qui répertorient des sites utilisant des fichiers llms.txt :
Intégrations
Divers outils et plugins sont disponibles pour vous aider à intégrer la spécification llms.txt dans votre flux de travail :
- llms_txt2ctx : interface en ligne de commande et module Python pour analyser les fichiers llms.txt et générer le contexte LLM
- vite-plugin-llms : plugin Vite qui sert les fichiers Markdown avec vos routes en suivant la spécification llms.txt
Prochaines étapes
La spécification llms.txt est ouverte aux contributions de la communauté. Un dépôt GitHub héberge cette présentation informelle, permettant le contrôle de version et la discussion publique. Un canal Discord communautaire est disponible pour partager les expériences d'implémentation et discuter des meilleures pratiques.