# SP3 给 Ghost 增加 llms.txt

仅需新增路由即可添加

一张带有纸质纹理的图片,上面写有文字:/LLMS.TXT

/llms.txt 文件是用于 LLM 的标准化文件,由 Answer.AI 发起。就像 sitemap.xml 之于搜索引擎,llms.txt 旨在让 LLM 更好更全面的理解一些在线文档。

你可以在下方的官网了解。

The /llms.txt file – llms-txt
A proposal to standardise on using an /llms.txt file to provide information to help LLMs use a website at inference time.

llms.txt directory 上能看到,许多产品文档都添加了该文件,这更有助于一些编程 agent 理解代码文档。

由于 /llms.txt 是开放的,如果理论上可以为任意网站添加一个。Firecrawl 就做了一个生成器 LLMs.txt generator,需要 API 才能完整输出(也可以本地部署)。

Ghost 这样的 CMS 系统,效仿 RSS 生成使用各种 handlebars 便可自行组装一个 /llms.txt

如何禁止AI Bot 抓取网站内容

先叠个甲,大多数人不愿意自己网站被 AI Bot 抓取,训练的模型不会给你的著作权署名,反而会消耗网站的流量。你可以在 robots.txt 加入各种 user-agent 限制。比如:

User-agent: GPTBot
Disallow: /

User-agent: ClaudeBot
Disallow: /

你能在很多地方找到 AI 厂商公开的 user-agent(比如这里),但是还有未公开的,目的就是为了获取新鲜语料。像 Cloudflare 这种大厂直接分析上万域名的 robots.txt 寻找隐藏的 AI Bot,来专门维护一个规则群,基本能排除得差不多。

Ghost 可以直接在主题的根目录下新建 robots.txt文件来覆盖默认的规则,非常方便。

如果你和我一样秉承开放的心态,且网站流量还算正常,那么可以向网站根目录添加 /llms.txt,方便自己,也可以顺便方便他人。

添加 llmx.txt

上面提到过,效仿 RSS 生成原理即可。可以先看看自定义 RSS 这篇文章。

Official Ghost + Custom RSS Integration
Ghost comes with automatic always-on RSS feeds for your site content - but fully supports custom RSS for when you need to add extra functionality!

打开 Ghost 后台设置,找到 Labs 设置项,点击 Download current routes

Ghost 后台设置的 Labs 项

你会得到当前网站的路由配置文件 routes.yaml。找一个编辑器,打开它。默认结构大概类似这样:

routes:

collections:
  /:
    permalink: /{slug}/
    template: index

taxonomies:
  tag: /tag/{slug}/
  author: /author/{slug}/

在 routes 下方,添加两个路径:

routes:
  /llms.txt/:
    template: llms
    content_type: text/plain
  /llms-full.txt/:
    template: llms-full
    content_type: text/plain

根据 Ghost 规则,之后要在主题的根目录里创建 llms.hbsllms-full.hbs 文件,来对应这两个路由。前者是文章的预览,包含文章的标题、摘要和链接;后者是当前网站的所有文本内容。


llms.hbs:

# {{@site.title}}

> {{@site.description}}

## Posts

{{#get "posts" limit="all" include="authors,tags"}}
    {{#foreach posts}}
- [{{title}}]({{url absolute="true"}}): {{excerpt}}
    {{/foreach}}
{{/get}}

## Optional

- [Blog Platform](https://ghost.org/)
- [Author](https://x.com/haxfenx)

这里 handlebars 都是语义化的不多解释了。本质这是一份 markdown 格式的纯文本文件,在遵照 llms.txt 格式下,你可以自由添加额外信息。#foreach posts 用于循环来获取你的全部文章,各种参数限制可以参照这里添加,比如限制文章个数等等。

Optional 是额外可选信息,可以不展示。复制粘贴的话记得把我的主页链接替换掉……


llms-full.hbs:

# {{@site.title}} All Posts

{{#get "posts" limit="all" include="authors,tags"}}
    {{#foreach posts}}
## {{title}}

Author: {{primary_author.name}} | Link: {{url absolute="true"}}

Article: 

{{content}}

    {{/foreach}}
{{/get}}

全文本这里格式更自由一些,我也只是随便列了一些。{{content}} 自带了访问权限,即你的文章设置了非所有人查看,那么这里也会对应无法查看。Ghost 有着丰富的 handlebars,你可以自定义一份你自己的文本。


之后把更改的 routes.yaml传回 Ghost(就是下载该文件的上方按钮),新加的 hbs 文件也要随着主题重新上传或激活一下。访问你的网站域名+ /llms.txt 即可看到效果。

例如我的网站添加后可访问:

将网址直接添加到上下文或 RAG 中即可。


如果你觉得文章对你有些帮助,可以请我的猫吃罐头 ↓

带有微信赞赏码和文字 A kind and compassionate act is often its own reward. 的横幅图像

订阅 Design Scenes

发布最新文章时,会以邮件通知你
zelda@link.com
订阅