【翻译】Jeremy Howard 关于标准化使用 llms.txt 的提案原文

【翻译】Jeremy Howard 关于标准化使用 llms.txt 的提案原文

·Mindrose Team·

一项标准化使用 /llms.txt 文件的提案,旨在提供信息,以帮助大型语言模型在推理时使用网站内容和信息

作者:Jeremy Howard

发布于:2024年9月3日

原文地址:https://llmstxt.org/

背景

大型语言模型越来越依赖网站信息,但面临一个关键限制:

上下文窗口太小,无法完整处理大多数网站的全部内容。

以及复杂页面内容提取为纯文本时的困难和不精准,当复杂页面包含导航、广告和JavaScript等冗余信息时。

虽然网站同时服务于人类读者和大型语言模型,但如果能提供在单一、易于访问的位置,提供简洁、专业级信息,对大模型会更有利。

一个例子:这对于开发环境等使用场景尤为重要,在这些场景中,大型语言模型需要快速访问和理解编程文档和API。

提议

llms.txt logo

我们建议向网站添加名为/llms.txt的静态markdown格式文件,以提供对大型语言模型友好的内容。该文件提供简要的背景信息、指导和详细markdown文件的链接。

llms.txt的markdown格式既适合人类阅读也适合大型语言模型阅读,同时还采用精确格式,同时允许使用广泛认可的格式处理方法(即各种格式渲染和正则表达式等传统编程技术)。

此外,我们也建议网站上包含可能对大型语言模型有用页面markdown描述,在原始页面的相同URL上提供这些页面的干净markdown版本,但附加.md后缀。(没有文件名的URL可以附加index.html.md。)

FastHTML项目在其文档中遵循了这两项建议。例如,这里是FastHTML文档的llms.txt。这里是常规HTML文档页面的示例,以及完全相同的URL但带有.md扩展名

这个提案不包括任何关于如何处理llms.txt文件的特定建议,因为这将取决于应用场景。

例如,FastHTML项目选择自动将llms.txt扩展为两个包含链接URL内容的markdown文件,使用适合Claude等大型语言模型的基于XML的结构。这两个文件是:

它们是使用llms_txt2ctx命令行应用程序创建的,FastHTML文档包含了关于如何使用它们的用户信息。

llms.txt文件的多功能性意味着它们可以服务于多种用途

  • 从帮助开发人员了解软件文档,
  • 到为企业提供概述其结构的方式,
  • 甚至分解复杂法规供利益相关者理解。
  • 它们对个人网站同样有用,可以帮助回答有关某人简历的问题,
  • 对电子商务网站可以解释产品和政策,
  • 或者对学校和大学提供快速访问课程信息和资源。

请注意,所有nbdev项目现在默认创建所有页面的.md版本。所有使用nbdev的Answer.AI和fast.ai软件项目都已使用此功能重新生成了文档。例如,请参阅fastcore的docments模块markdown版本

格式

目前,语言模型最广泛且最容易理解的格式是Markdown。简单地展示关键Markdown文件的位置是很好的第一步。提供一些基本结构有助于语言模型找到它需要的信息来源。

llms.txt文件的不同寻常之处在于它使用Markdown来组织信息,而不是像XML这样的传统结构化格式。

这样做的原因是我们预期这些文件中的许多将被AI 模型和AI Agent读取。尽管如此,llms.txt中的信息遵循特定格式,可以使用标准的基于编程的工具进行读取。

llms.txt文件规范适用于位于网站根路径/llms.txt(或可选地,在子路径中)的文件。遵循规范的文件以特定顺序包含以下Markdown部分:

  • 带有项目或网站名称的H1标题。这是唯一必需的部分
  • 一个带有项目简短摘要的引用块,包含理解文件其余部分所必需的关键信息
  • 零个或多个任何类型的Markdown部分(例如段落、列表等),除了标题外,包含有关项目的更详细信息以及如何解释所提供文件的说明
  • 零个或多个由H2标题分隔的Markdown部分,包含可获取更多详细信息的URL"文件列表"
    • 每个"文件列表"是一个Markdown列表,包含必需的Markdown超链接[name](url),然后可选地加上:和关于该文件的注释。

以下是一个示例:

MARKDOWN 代码
# 标题 / 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)

注意,"Optional"部分具有特殊含义——如果包含此部分,在需要更短上下文时可以跳过其中提供的URL。将其用于通常可以跳过的次要信息。

现有标准

llms.txt 旨在与当前的SEO网络标准共存(包括sitemap.xml和robots.txt)。

虽然sitemap为搜索引擎列出所有页面,但 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,因为它——

  • 通常不会列出页面的大型语言模型可读版本
  • 不包括外部网站的 URL,尽管它们可能有助于理解信息
  • 通常会覆盖总体上太大而无法适应大型语言模型上下文窗口的文档,并且会包含许多理解网站不必要的信息。

示例

以下是 llms.txt 的示例,这是 FastHTML 项目使用的文件的精简版本(另见完整版本):

MARKDOWN 代码
# 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://fastht.ml/docs/tutorials/quickstart_for_web_devs.html.md): A brief overview of many FastHTML features
- [HTMX reference](https://github.com/bigskysoftware/htmx/blob/master/www/content/reference.md): Brief description of all HTMX attributes, CSS classes, headers, events, extensions, js lib methods, and config options
## Examples- [Todo list application](https://github.com/AnswerDotAI/fasthtml/blob/main/examples/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/jph00/809e4a4808d4510be0e3dc9565e9cbd3/raw/9b717589ca44cedc8aaf00b2b8cacef922964c0f/starlette-sml.md): A subset of the Starlette documentation useful for FastHTML development.

要创建有效的 llms.txt 文件,请考虑以下指南:

  • 使用简洁、清晰的语言。
  • 链接到资源时,包含简短、信息丰富的描述。
  • 避免使用模糊术语或未解释的行业术语。
  • 运行一个工具,将您的 llms.txt 文件扩展为 LLM 上下文文件,并测试多个语言模型,看它们是否能回答有关您内容的问题。

资源目录

以下是一些列出网络上可用的 llms.txt 文件的目录:

可用集成

有各种工具和插件可帮助将llms.txt规范集成到您的工作流程中:

后续步骤

llms.txt规范开放社区意见。GitHub仓库托管这份非正式概述,允许版本控制和公开讨论。社区Discord频道可用于分享实施经验和讨论最佳实践。

Cover Image by Franz Bachinger from Pixabay.

联系我们
您可以通过以下方式联系我们: