
提示 首先感慨一下新知识、新概念真的层出不穷,努力学习吧。
今天看到有人在推特上分享,通过一句命令行,就可以给已有网站添加llmstxt文件,让AI爬虫更准确理解网站内容,优化GEO。
什么是llmstxt文件?llms.txt到底有什么作用?带着这个问题,我先去问AI。
什么是llms.txt 和 llms-full.txt?
llms.txt 和 llms-full.txt 都是为了帮助大型语言模型(LLM)更好地理解和利用网站内容而提出的文件格式。它们都采用 Markdown 格式,旨在提供一种比直接解析复杂HTML更简洁、结构化的方式来呈现网站信息。
llms.txt
作用:
- 提供一个简洁的、对LLM友好的网站内容摘要和导航。
- 它像一个为LLM定制的站点地图或索引,列出网站上的重要页面、文档或资源,并可能包含简短描述。
- 帮助LLM快速定位到相关信息,而无需解析整个网站的复杂HTML、广告和JavaScript。
- 引导LLM到网站上最有价值的内容,如API文档、政策说明、产品信息等。
- 可以补充robots.txt,为允许访问的内容提供上下文。
格式:
- 使用 Markdown 格式。
- 通常包含一个项目名称(H1标题)、网站摘要(blockquote),然后使用H2标题对链接进行分类。
- 主要包含指向网站内其他Markdown文件或重要页面的链接,并附带简要说明。
- 目标是提供一个清晰的结构,方便LLM和人类阅读,同时也允许通过解析器和正则表达式等传统编程方法进行处理。
llms-full.txt
llms-full.txt 是 llms.txt 的完整版本,它不仅包含 llms.txt 的所有内容,还包含更多细节,如页面标题、描述、关键词等。
作用:
- 提供网站关键内容的完整文本,而不是仅仅是指向这些内容的链接。
- 它将多个重要页面的内容整合到一个单一的Markdown文件中。
- 目的是让LLM可以直接获取所需信息,无需再进行额外的导航或抓取。
- 对于某些AI工具,可以直接加载此文件的链接,将全部文档内容导入其上下文窗口。
- 在某些情况下,例如为AI IDE(集成开发环境)提供完整的SDK文档,或为聊天机器人填充知识库时非常有用。
格式:
- 同样使用 Markdown 格式。
- 通常的结构是,每个被包含的页面内容前会有一个H1标题(页面标题),一个指向原始URL的“Source:”链接,然后是该页面的完整Markdown内容。
- 由于包含了所有详细内容,这个文件可能会变得非常大。
- 注意事项:llms-full.txt 并非 llms.txt 原始提案的一部分,而是一种新兴的实践,旨在简化AI对内容的提取。
如何为Hugo网站添加llms.txt?
看完AI的回复,我大致明白了,这就是Hugo的TXT输出格式。除了最初两行输出有数据要求外,其他内容都可以根据需要自定义。
由于llms-full.txt输出的内容较多,可能会超出某些LLM的上下文限制,需要认真选择希望展示的数据信息,所以我暂时只是生成了llms.txt。
配置Hugo输出TXT文件
Hugo的TXT输出格式,需要在hugo.toml
中进行配置。
[outputFormats.TXT]
mediaType = "text/plain"
baseName = "llms"
isPlainText = true
notAlternative = true
配置需要输出TXT文件的页面。我只是在home页面输出llms.txt。
[outputs]
home = ["HTML", "JSON","RSS","TXT"]
page = ["HTML", "RSS"]
section = ["HTML", "RSS"]
taxonomy = ["HTML", "RSS"]
编写template文件
在layouts/_default
目录,创建index.txt
文件。
# {{ .Site.Title }}
> {{ .Site.Params.description }}
## Categories
{{ range .Site.Taxonomies.categories }}
### {{ .Page.Title }}
{{ range .Pages }}- [{{ .Title }}]({{ .RelPermalink| absURL }}) - {{ .Summary | plainify | truncate 100 }}
{{ end }}
{{ end }}
当运行hugo
命令时,Hugo会根据配置,生成HTML、JSON、RSS和TXT文件。TXT文件的输出路径为public/llms.txt
。
最终效果可以访问 llms.txt 。