Примечание: Этот сайт является любительским переводом документации по файлу llms.txt. Оригинальная документация доступна на llmstxt.org.
Предложение по стандартизации использования файла /llms.txt для предоставления информации, помогающей языковым моделям использовать веб-сайт во время инференса.
Языковые модели все чаще полагаются на информацию с веб-сайтов, но сталкиваются с критическим ограничением: контекстные окна слишком малы для обработки большинства веб-сайтов целиком. Преобразование сложных HTML-страниц с навигацией, рекламой и JavaScript в удобный для языковых моделей обычный текст является сложной и неточной задачей.
Хотя веб-сайты обслуживают как человеческих читателей, так и языковые модели, последние получают пользу от более сжатой, экспертной информации, собранной в одном доступном месте. Это особенно важно для случаев использования, таких как среды разработки, где языковым моделям нужен быстрый доступ к документации по программированию и API.
Мы предлагаем добавлять на веб-сайты Markdown-файл /llms.txt для предоставления контента, удобного для языковых моделей. Этот файл предлагает краткую справочную информацию, руководства и ссылки на подробные Markdown-файлы.
Markdown llms.txt читается как людьми, так и языковыми моделями, но также имеет точный формат, позволяющий использовать фиксированные методы обработки (т.е. классические методы программирования, такие как парсеры и регулярные выражения).
Кроме того, мы предлагаем, чтобы страницы на веб-сайтах, содержащие информацию, которая может быть полезна для чтения языковыми моделями, предоставляли чистую Markdown-версию этих страниц по тому же URL, что и исходная страница, но с добавлением .md. (URL без имен файлов должны добавлять index.html.md вместо этого.)
Проект FastHTML следует этим двум предложениям для своей документации. Например, вот llms.txt документации FastHTML. И вот пример обычной HTML-страницы документации вместе с точно таким же URL, но с расширением .md.
Это предложение не включает каких-либо конкретных рекомендаций по обработке файла llms.txt, поскольку это будет зависеть от приложения. Например, проект FastHTML решил автоматически расширять llms.txt до двух Markdown-файлов с содержимым связанных URL, используя структуру на основе XML, подходящую для использования в языковых моделях, таких как Claude. Два файла: llms-ctx.txt, который не включает опциональные URL, и llms-ctx-full.txt, который включает их. Они создаются с помощью приложения командной строки llms_txt2ctx, и документация FastHTML включает информацию для пользователей о том, как их использовать.
Универсальность файлов llms.txt означает, что они могут служить многим целям - от помощи разработчикам в ориентировании в документации по программному обеспечению до предоставления бизнесу способа описания своей структуры или даже разбора сложного законодательства для заинтересованных сторон. Они так же полезны для личных веб-сайтов, где могут помочь ответить на вопросы о чьем-то резюме, для интернет-магазинов, чтобы объяснить продукты и политики, или для школ и университетов, чтобы предоставить быстрый доступ к информации о курсах и ресурсах.
Обратите внимание, что все проекты nbdev теперь по умолчанию создают .md версии всех страниц. Вся документация по программным проектам Answer.AI и fast.ai, использующим nbdev, была перегенерирована с этой функцией. Для примера, смотрите Markdown-версию модуля docments fastcore.
На данный момент наиболее широко и легко понимаемым форматом для языковых моделей является Markdown. Простое указание, где можно найти ключевые Markdown-файлы, является отличным первым шагом. Предоставление некоторой базовой структуры помогает языковой модели найти, откуда может поступать необходимая ей информация.
Файл llms.txt необычен тем, что использует Markdown для структурирования информации, а не классический структурированный формат, такой как XML. Причина в том, что мы ожидаем, что многие из этих файлов будут читаться языковыми моделями и агентами. Тем не менее, информация в llms.txt следует определенному формату и может быть прочитана с помощью стандартных инструментов на основе программирования.
Спецификация llms.txt предназначена для файлов, расположенных в корневом пути /llms.txt веб-сайта (или, опционально, в подпути). Файл, следующий спецификации, содержит следующие разделы в Markdown, в определенном порядке:
[название](url), затем опционально : и примечания о файле.Вот пример:
# Заголовок
> Опциональное описание здесь
Опциональные детали здесь
## Название раздела
- [Название ссылки](https://url_ссылки): Опциональные детали ссылки
## Optional
- [Название ссылки](https://url_ссылки)
Обратите внимание, что раздел "Optional" имеет особое значение - если он включен, предоставленные там URL можно пропустить, если нужен более короткий контекст. Используйте его для второстепенной информации, которую часто можно пропустить.
llms.txt разработан для сосуществования с текущими веб-стандартами. В то время как карты сайта перечисляют все страницы для поисковых систем, llms.txt предлагает курированный обзор для языковых моделей. Он может дополнять robots.txt, предоставляя контекст для разрешенного контента. Файл также может ссылаться на структурированную разметку данных, используемую на сайте, помогая языковым моделям понять, как интерпретировать эту информацию в контексте.
Подход стандартизации пути для файла следует подходу /robots.txt и /sitemap.xml. robots.txt и llms.txt имеют разные цели - robots.txt обычно используется, чтобы сообщить автоматизированным инструментам, какой доступ к сайту считается приемлемым, например, для ботов индексации поиска. С другой стороны, информация llms.txt часто будет использоваться по требованию, когда пользователь явно запрашивает информацию по теме, например, при включении документации библиотеки кодирования в проект или при запросе информации у чат-бота с функцией поиска. Мы ожидаем, что llms.txt в основном будет полезен для инференса, т.е. в момент, когда пользователь ищет помощь, в отличие от обучения. Однако, возможно, если использование llms.txt станет широко распространенным, будущие прогоны обучения также смогут использовать информацию в файлах llms.txt.
sitemap.xml - это список всей индексируемой информации, доступной для чтения человеком на сайте. Это не замена llms.txt, поскольку он:
Вот пример llms.txt, в данном случае сокращенная версия файла, используемого для проекта FastHTML (см. также полную версию):
# FastHTML
> FastHTML - это библиотека Python, которая объединяет Starlette, Uvicorn, HTMX и "FastTags" `FT` из fastcore в библиотеку для создания серверно-рендеренных гипермедийных приложений.
Важные примечания:
- Хотя части его API вдохновлены FastAPI, он *не* совместим с синтаксисом FastAPI и не предназначен для создания API-сервисов
- FastHTML совместим с веб-компонентами на основе JS и любой vanilla JS библиотекой, но не с React, Vue или Svelte.
## Документация
- [Быстрый старт FastHTML](https://fastht.ml/docs/tutorials/quickstart_for_web_devs.html.md): Краткий обзор многих функций FastHTML
- [Справочник HTMX](https://github.com/bigskysoftware/htmx/blob/master/www/content/reference.md): Краткое описание всех атрибутов HTMX, CSS классов, заголовков, событий, расширений, методов js lib и параметров конфигурации
## Примеры
- [Приложение списка дел](https://github.com/AnswerDotAI/fasthtml/blob/main/examples/adv_app.py): Подробное пошаговое руководство по полному CRUD-приложению на FastHTML, показывающее идиоматическое использование шаблонов FastHTML и HTMX.
## Optional
- [Полная документация Starlette](https://gist.githubusercontent.com/jph00/809e4a4808d4510be0e3dc9565e9cbd3/raw/9b717589ca44cedc8aaf00b2b8cacef922964c0f/starlette-sml.md): Подмножество документации Starlette, полезное для разработки FastHTML.
Чтобы создать эффективные файлы llms.txt, учитывайте эти рекомендации:
llms.txt в файл контекста языковой модели, и протестируйте несколько языковых моделей, чтобы увидеть, могут ли они ответить на вопросы о вашем контенте.Вот несколько каталогов, которые перечисляют доступные файлы llms.txt в Интернете:
Доступны различные инструменты и плагины, чтобы помочь интегрировать спецификацию llms.txt в ваш рабочий процесс:
llms_txt2ctx - CLI и модуль Python для разбора файлов llms.txt и генерации контекста для языковых моделейvitepress-plugin-llms - Плагин VitePress, который автоматически генерирует удобную для языковых моделей документацию для веб-сайта в соответствии со спецификацией llms.txtdocusaurus-plugin-llms - Плагин Docusaurus для генерации удобной для языковых моделей документации в соответствии со стандартом llmtxt.orgllms-txt-php - Библиотека для записи и чтения Markdown-файлов llms.txtСпецификация llms.txt открыта для ввода сообщества. Репозиторий GitHub размещает этот неформальный обзор, позволяя контролировать версии и публичное обсуждение. Канал сообщества в Discord доступен для обмена опытом реализации и обсуждения лучших практик.
Файл llms.txt решает несколько ключевых проблем взаимодействия языковых моделей с веб-контентом:
Создание llms.txt файла для вашего сайта может значительно улучшить качество ответов языковых моделей, связанных с вашим контентом, и сделать вашу информацию более доступной для AI-ассистентов и чат-ботов.