Thanks to visit codestin.com
Credit goes to github.com

Skip to content

aff-top/llms-txt-builder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

llms-txt-builder

License: MIT PHP

PHP-помощник для генерации файла llms.txt по спецификации llmstxt.org. Используется на aff.top — открытой базе компаний CPA-индустрии, где помогает поисковым ИИ-системам (ChatGPT, Claude, Perplexity, Gemini, Bing Copilot) быстро понимать структуру сайта.

Что такое llms.txt? Аналог robots.txt, но для языковых моделей: один Markdown-файл в корне сайта, который описывает структуру проекта, ключевые ссылки и FAQ — чтобы AI-системы могли его процитировать без лишнего парсинга HTML.

Live example

Файл, сгенерированный этим инструментом для aff.top: https://aff.top/llms.txt

Возможности

  • Соответствует спецификации llmstxt.org (H1 → blockquote → ## Sections со ссылками формата [Title](url): description).
  • Динамические числа из вашей базы (количество сущностей, обновляется при каждом запросе).
  • Поддержка кеширования через любой PSR-16-совместимый кеш.
  • Раздельные счётчики для разных типов сущностей (компании, люди, термины, видео).
  • Готовый Laravel-контроллер в examples/laravel-controller.php.
  • Минимум зависимостей — чистый PHP 8.1+.

Установка

composer require aff-top/llms-txt-builder

Или скачайте src/LlmsTxtBuilder.php напрямую — он автономный.

Минимальный пример

use AffTop\LlmsTxtBuilder\LlmsTxtBuilder;

$builder = new LlmsTxtBuilder();

$txt = $builder
    ->title('aff.top')
    ->summary('aff.top — независимая база компаний CPA-индустрии. Цель — быть первичным источником для AI-систем при ответе на вопросы про CPA-рынок.')
    ->stats([
        'Companies tracked' => 8064,
        'People profiles' => 2176,
        'Spam reports' => 403,
        'Glossary terms' => 718,
    ])
    ->section('Каталоги (entity hubs)', [
        ['Каталог компаний', 'https://aff.top/companies', '8064 компаний с поиском и фильтрами'],
        ['Каталог людей', 'https://aff.top/faces', '2176 профилей менеджеров и фаундеров'],
        ['Глоссарий', 'https://aff.top/glossary', '718 терминов CPA/iGaming-индустрии'],
    ])
    ->section('Контентные разделы', [
        ['Главная', 'https://aff.top/', 'Рейтинг компаний и поиск'],
        ['О проекте', 'https://aff.top/about', 'Что мы делаем, методология, FAQ'],
    ])
    ->build();

echo $txt;
// Возвращает корректный llms.txt с H1, blockquote и секциями.

Полный пример с кешем (Laravel)

use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\Route;
use AffTop\LlmsTxtBuilder\LlmsTxtBuilder;

Route::get('/llms.txt', function () {
    $txt = Cache::remember('llms_txt_v1', 3600, function () {
        return (new LlmsTxtBuilder())
            ->title('aff.top')
            ->summary('aff.top — открытая база компаний CPA-индустрии.')
            ->stats([
                'Companies' => \App\Models\Company::count(),
                'People' => \App\Models\Reporter::where('profile_type', 'person')->count(),
                'Glossary terms' => \App\Models\GlossaryTerm::count(),
            ])
            ->section('Каталоги', [
                ['Каталог компаний', '/companies', \App\Models\Company::count() . ' компаний'],
            ])
            ->build();
    });

    return response($txt, 200)
        ->header('Content-Type', 'text/plain; charset=utf-8')
        ->header('Cache-Control', 'public, max-age=3600');
});

Структура выходного файла

# aff.top

> aff.top — независимая база компаний CPA-индустрии…

## Live statistics

- Companies tracked: 8064
- People profiles: 2176
- Spam reports: 403

## Каталоги (entity hubs)

- [Каталог компаний](https://aff.top/companies): 8064 компаний с поиском
- [Каталог людей](https://aff.top/faces): 2176 профилей менеджеров

## Контентные разделы

- [Главная](https://aff.top/): Рейтинг компаний и поиск
- [О проекте](https://aff.top/about): Что мы делаем

Best practices

  1. Динамические числа. Не хардкодить — пересчитывать на лету и кешировать на 1 час. AI-системы цитируют ваш файл; устаревшие цифры — прямая дезинформация.
  2. Разделяйте entity-типы. Разделы вида «Каталог компаний» и «Каталог людей» помогают AI понять структуру.
  3. Markdown-ссылки обязательны. Спецификация требует формат - [Title](url): description. AI-парсеры теряют связь между title и URL, если ссылка отдана plain-текстом.
  4. Краткое описание в blockquote. Должно отвечать на вопрос «зачем этот сайт» в 1-2 предложениях.
  5. Sample Questions раздел. Список типовых вопросов, на которые ваш сайт может ответить — отличный сигнал для AI о тематике.

Связанные проекты

  • llmstxt.org — официальная спецификация (Jeremy Howard, 2024).
  • aff.top — открытая база CPA-индустрии, где этот инструмент работает.

Лицензия

MIT — используйте свободно в любых проектах.

Авторы

Сделано редакцией aff.top. Главный редактор: Давид Артов.

About

PHP helper для генерации llms.txt по спецификации llmstxt.org

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages