"如何让 AI 更准确地理解我的文档?" 这个问题困扰着越来越多的开发者。当我们花费大量时间精心编写的技术文档被 AI 误解或忽略时,那种挫折感想必不少人都体会过。llms.txt 正是为解决这一痛点而生的新兴标准,它就像是你和 AI 之间的"翻译官",帮助 ChatGPT、Claude 等 AI 工具更精准地理解你的网站内容。本文将带你探索这个小众但强大的标准,以及如何通过 vitepress-plugin-llms 插件轻松为你的 VitePress 文档添加这一能力。

什么是 llms.txt?

llms.txt 是一个专为大型语言模型(Large Language Models,简称 LLMs)设计的文本文件,类似于 robots.txt,但目的不同。robots.txt 告诉搜索引擎爬虫哪些页面可以爬取,而 llms.txt 则是为 AI 工具提供网站内容的结构化信息,帮助 AI 更好地理解和索引网站内容。

llms.txt 的名称中的 "llms" 代表 "Large Language Models",表明这个文件是专门为大型语言模型设计的。

llms.txt 的由来

随着 ChatGPT、Claude 等 AI 工具的普及,开发者希望这些 AI 工具能够更好地理解和索引他们的文档。然而,AI 工具在抓取和理解网站内容时面临着一些挑战:

  1. 网站结构复杂,AI 难以理解内容之间的关系
  2. 网站内容可能分散在多个页面,AI 难以获取完整信息
  3. 网站可能包含动态内容,AI 难以抓取

为了解决这些问题,一些开发者和 AI 公司开始探索一种标准化的方式,让网站所有者能够主动向 AI 工具提供网站内容的结构化信息。这就是 llms.txt 的由来。

llms.txt 的规范

llms.txt 文件通常放置在网站的根目录下,例如 https://example.com/llms.txt。它的内容格式比较自由,但通常包含以下几个部分:

  1. 网站标题和描述:简要介绍网站的主题和内容
  2. 内容目录:列出网站的主要页面和链接
  3. 内容摘要:提供网站主要内容的摘要

此外,还有一个扩展版本 llms-full.txt,它包含网站的完整内容,让 AI 工具能够获取网站的所有信息。

下面是一个简单的 llms.txt 示例:

# 我的技术博客

这是一个关于前端开发的技术博客,主要分享 Vue、React 和 TypeScript 相关的技术文章。

## 文档目录

- [首页](/)
- [Vue 教程](/vue)
- [React 教程](/react)
- [TypeScript 教程](/typescript)
- [关于我](/about)

llms.txt 的作用

llms.txt 为 AI 工具提供了一种统一的方式来获取和理解网站内容,具有以下几个主要作用:

  1. 提高 AI 理解准确性:通过提供结构化的内容信息,帮助 AI 更准确地理解网站内容
  2. 增强 AI 回答质量:AI 可以基于更完整的信息提供更准确、更有深度的回答
  3. 控制 AI 访问内容:网站所有者可以主动决定向 AI 提供哪些内容
  4. 减少 AI 抓取负担:AI 工具可以直接获取结构化的内容,减少对网站的抓取负担

vitepress-plugin-llms 插件介绍

vitepress-plugin-llms 是一个专为 VitePress 文档网站设计的插件,它可以自动生成 llms.txt 和 llms-full.txt 文件,让你的 VitePress 文档更好地被 AI 工具理解和索引。

插件特性

  • 自动生成 llms.txt 和 llms-full.txt 文件
  • 支持自定义网站标题和描述
  • 支持自定义模板变量
  • 支持忽略特定文件
  • 支持 Netlify 部署

安装和使用

安装插件:

npm install vitepress-plugin-llms -D
# 或者使用 pnpm
pnpm add vitepress-plugin-llms -D

在 VitePress 配置文件中使用插件:

// docs/.vitepress/config.js
import { defineConfig } from 'vitepress'
import llmstxt from 'vitepress-plugin-llms'

export default defineConfig({
  // ... 其他配置
  vite: {
    plugins: [
      llmstxt()
    ]
  }
})

只需简单几行配置,插件会自动为你生成两类文件:

  • llms.txt:包含所有章节链接的索引文件
  • llms-full.txt:将整站文档内容合并到一个文件中,方便 LLM 一次性读取

这两个文件都会被输出到 .vitepress/dist 文件夹中,配合你部署后的站点即可使用。

自定义配置

如果你有特殊需求,可以配置插件参数。例如:

llmstxt({
  generateLLMsFullTxt: false,
  ignoreFiles: ['sponsors/*'],
  customLLMsTxtTemplate: `# {title}\n\n{foo}`,
  title: 'Awesome tool',
  customTemplateVariables: {
    foo: 'bar'
  }
})

个配置做了以下几件事:

  • 关闭 llms-full.txt 的生成
  • 忽略 sponsors/ 目录下的所有文件
  • 使用自定义模板生成 llms.txt 文件
  • 注入了两个自定义变量 {title} 和 {foo}

推荐配置:设置重定向

location ~ ^/(.*)\.md$ {
  return 200 /$1.txt;
}

这能确保 .md 地址也能正确跳转到 .txt 文件,让 AI 抓取更加顺畅。

插件亮点

  • 开箱即用,无需复杂配置
  • 自动生成适合 LLM 的精简 Markdown 文档
  • 可自定义模板和变量,灵活度高
  • 结构清晰,适配主流托管平台
  • 遵循 llmstxt.org 规范,文档生成更规范、更可控

生成的文档结构大致如下:

.vitepress/dist
├── llms-full.txt          // 所有文档整合为一个文件
├── llms.txt               // LLM 索引文件,包含章节链接
├── xxx.md                 // 原始 Markdown 文件
├── xxx.html               // 普通 HTML 页面

无论你是希望提升 AI 对文档的解析能力,还是想构建一份结构更清晰的站点,vitepress-plugin-llms 都是一个非常轻量好用的选择。

最后

vitepress-plugin-llms 是一个非常实用的小工具,它让你的文档站点更容易被 AI 消化,适合个人项目、开源文档站、开发者博客等场景!

今天的分享就这些了,感谢大家的阅读,如果文章中存在错误的地方欢迎指正!

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐