llms.txt llms.txt
Imagu mian ŝokon kaj surprizon malkovri, ke kiam mi nun sendas CV-ojn, mi rapide vidas LLM-esploradadentojn en miaj atingoprotokojn versante super mian portofolio-paĝon. Dum tempo ĉiam antaŭenmovας, mi suspektas, ke mi pli ofte traktos AI-agentojn, precipe en la labormerкato.
Mi ne estas ravita pri tio, sed mi ne povas fari ion pri tio - do, se vi ne povas venki ilin, aliĝu al ili.
Mia retejo jam estas sufiĉe rekta HTML kaj CSS, sed en miaj propraj testoj, modeloj ankoraŭ ŝajnas konfuziĝi pri enhavo sur mia ejo - estas multe por analizi, eĉ en simpla ejo.
Feliĉe, nova normo formiĝas por organizi retejan enhavon por llm-oj en simplajn “.txt” dosierojn. Se vi ne vidis ilin antaŭe, ili estas esence markdown-versioj de paĝa enhavo, sen stilado, sen javascript.
Ĉi tiu artikolo klarigas kiel generi ĉi tiujn dosierojn aŭtomate el ekzistanta enhavo, por Hugo SSG-ejoj.
La Fluo
Ni volas povi:
- Provizi purajn, plat-tekstajn versiojn de ĉiu enhavo
- Permesi al ni skribi proprajn versiojn kiam necese
- Aŭto-generi LLM-optimumigitan enhavon en ĉiuj aliaj kazoj
- Krei ĉefan indekson de ĉiu LLM-preta enhavo
- Fari kiel eble malplej multe permane.
Se vi ne konas Hugo-an Ŝablonan sistemon, ĝi estas neredeble potenca, kaj povas fari multe pli ol nur aranĝi HTML-dosierojn. Ni uzos ĝin hodiaŭ por generi llms.txt dosierojn aŭtomate, revenante al nia propra enhavo en ĉiuj aliaj kazoj.
Gravaj paĝoj kiel la laborportfolio profitas el propraj llms.txt
dosieroj enhavantaj man-faritajn, LLM-optimumigitajn enhavon. Ĉi tiuj dosieroj vivas apud la ĉefa enhavo:
content/
info/
work/
index.en.md # Hom-legebla paĝo
llms.txt # Propra LLM-versio
Propraj dosieroj provizas kompletan kontrolon super LLM-videbla enhavo, ebligi:
- Forigi vidajn elementojn kiuj ne tradukas al teksto
- Restrukturi informojn por pli bona LLM-kompreno
- Inkluzivi aldonan kuntekston aŭ klarigojn
- Formati datumojn en LLM-amikaj strukturoj
Paĝoj sen propraj LLM-dosieroj aŭtomate generas purajn tekst-versiojn uzante propran eligan formaton. La realigo funkcias jene:
Hugo Konfiguro (config.toml
):
La propra enhav-genera sistemo bezonas tri ĉefajn konfigurajn sekciojn:
# Propraj eligaj formatoj
[mediaTypes]
[mediaTypes."text/plain"]
suffixes = ["txt"]
[mediaTypes."text/markdown"]
suffixes = ["md"]
[outputFormats]
[outputFormats.llmsfull]
mediaType = "text/plain"
baseName = "llms-full"
isPlainText = true
notAlternative = true
[outputFormats.llms]
mediaType = "text/plain"
baseName = "llms"
isPlainText = true
notAlternative = true
[outputs]
home = ["HTML", "RSS", "llmsfull"]
page = ["HTML", "llms"]
Konfigura Malkomponoj:
mediaTypes
: Difinas la MIME-tipojn kiujn Hugo rekonas. Latext/plain
tipo kuntxt
sufikso ebligas plat-tekstan dosier-generadon.outputFormats
: Kreas du proprajn eligajn formatojn:llms
: Generas individuajnllms.txt
dosierojn por ĉiu paĝollmsfull
: Kreas la ampleksan ejo-indekson kielllms-full.txt
La
isPlainText = true
flago certigas taŭgan tekst-formatigon, dumnotAlternative = true
malhelpas ĉi tiujn aperi en RSS-fluoj aŭ ejmapoj.outputs
: Specifas kiujn formatojn generi:home
: La hejmpaĝo generas HTML, RSS, kaj la plenan LLM-indeksonpage
: Individuaj paĝoj generas HTML kaj LLM-amikajn versiojn
Ŝablono (layouts/_default/single.llms.txt
):
{{- if .File -}}
{{- $customLlmsFile := printf "%sllms.txt" .File.Dir -}}
{{- if not (fileExists (printf "content/%s" $customLlmsFile)) -}}
# {{ .Title }}
{{ if .Params.description }}{{ .Params.description }}
{{ end }}{{ if .Date }}Publikigite: {{ .Date.Format "January 2, 2006" }}
{{ end }}{{ .RawContent }}
{{- end -}}
{{- end -}}
Ĉi tiu ŝablono nur generas enhavon kiam neniu propra llms.txt
dosiero ekzistas, certigante ke la propraj versioj ĉiam havas prioritaton.
La kronĵuvelo estas llms-full.txt
- ampleksa indekso de ĉiu LLM-amika enhavo sur la ejo, organizita laŭ enhav-tipo:
Ŝablono (layouts/index.llmsfull.txt
):
# LLM-Amika Enhava Indekso
# Informoj
{{- range (where .Site.RegularPages "Type" "info") }}
- [{{ .Title }}]({{ .Permalink }}llms.txt)
{{- end }}
# Afiŝoj
{{- range (where .Site.RegularPages "Type" "posts") }}
- [{{ .Title }}]({{ .Permalink }}llms.txt)
{{- end }}
# Projektoj
{{- range (where .Site.RegularPages "Type" "projects") }}
- [{{ .Title }}]({{ .Permalink }}llms.txt)
{{- end }}
# IndieWeb Notoj
{{- range (where .Site.RegularPages "Type" "indieweb") }}
{{- if eq .Params.kind "note" }}
- [{{ .Title }}]({{ .Permalink }}llms.txt)
{{- end }}
{{- end }}
Inteligenta Enhava-Detekto
La sistemo aŭtomate detektas kiuj paĝoj havas LLM-versiojn disponeblajn kaj montras ligojn laŭe. En individuaj paĝoj, la ŝablono kontrolas pri enhavo kaj montras la ligon en la paĝkapo:
{{/* Ĉiam montru llms.txt ligon - aŭ propran aŭ aŭto-generitan */}}
{{ if .File }}
<a href="{{ .Permalink }}llms.txt" class="llms-link">
<span class="llms-letter">l</span><span class="llms-letter">l</span>...
</a>
{{ end }}
La Rezulto
Ĉiu paĝo nun havas LLM-amikan version alireblан ĉe /page-url/llms.txt
, kun ampleksa indekso ĉe /llms-full.txt
. La sistemo aŭtomate prizorgas sin mem dum nova enhavo aldoniĝas, dum provizante plenan kontrolon super la plej gravaj paĝoj.
La kompleta realigo disponeblas en la eja font-kodo, kaj la sistemo generas ĉi tiun mem afiŝon en LLM-amika formato aŭtomate. La LLM-versio de ĉi tiu afiŝo kaj kompleta eja indekso demonstras la sistemon en ago.
Comments