Generating llms.txt files with PHP
To make your website or project site provide LLM-friendly content, there's a new standard on the horizon named /llms.txt. It suggests adding a llms.txt containing human and LLM readable content in a fixed Markdown format.
Using llms-txt-php
In the PHP ecosystem, there's a relatively fresh PHP 📦 for writing, reading, and validating llms.txt Markdown files. The following snippet shows how to programmatically model such a file.use Stolt\LlmsTxt\LlmsTxt;
use Stolt\LlmsTxt\Section;
use Stolt\LlmsTxt\Section\Link;
$section1 = (new Section())->name('Section name')
->addLink((new Link())->urlTitle('Link title')
->url('https://link_url')->urlDetails('Optional link details')
);
$section2 = (new Section())->name('Optional')
->addLink((new Link())->urlTitle('Link title')
->url('https://link_url')
);
$llmsTxt = (new LlmsTxt())->title('Test title')
->description('Test description')
->details('Test details')
->addSections([$section1, $section2])
->addSection($section2)
->toString();
Reading a llms.txt file and its parts are done the following way.
use Stolt\LlmsTxt\LlmsTxt;
$llmsText = (new LlmsTxt())->parse('/path/to/llmsTxt.md');
if ($llmsText->validate()) {
$title = $llmsText->getTitle();
$description = $llmsText->getDescription();
$details = $llmsText->getDetails();
$sections = $llmsText->getSections();
}
The llms-txt-php package also provides a minimalistic CLI to interact with an existing llms.txt file or boostrap it's creation. The following console output lists the currently available commands.
php bin/llms-txt list
llms-txt-php 1.6.1
Usage:
command [options] [arguments]
Options:
-h, --help Display help for the given command. When no command is given display help for the list command
--silent Do not output any message
-q, --quiet Only errors are displayed. All other output is suppressed
-V, --version Display this application version
--ansi|--no-ansi Force (or disable --no-ansi) ANSI output
-n, --no-interaction Do not ask any interactive question
-v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
Available commands:
check-links Check links of a llms txt file
completion Dump the shell completion script
help Display help for a command
info Get metadata info of a llms txt file
init Create an initial llms txt file
list List commands
validate Validate the given llms txt file
No comments:
Post a Comment