llms.txt в Ruby on Rails

Rails обслуживает папку public/ в корне сайта. Добавьте туда llms.txt или создавайте его через контроллер, если содержимое динамическое.

Последнее обновление:

Два подхода

Rails может обслуживать llms.txt двумя способами: статический файл в public/ (самый простой вариант), либо действие контроллера, которое создаёт файл из ваших данных. Используйте статический файл, если его содержимое не должно отражать актуальные записи.

Метод 1: статический файл в public/

Всё в public/ обслуживается в корне домена. Файл по адресу public/llms.txt разрешается в /llms.txt.

  1. Создайте файл: touch public/llms.txt
  2. Напишите содержимое (см. руководство):
# Your App Name

> One-sentence description of your app for LLM context.

## Core pages

- [Home](https://yourdomain.com/): what this app does.
- [Pricing](https://yourdomain.com/pricing/): plans and limits.
- [Docs](https://yourdomain.com/docs/): developer documentation.

Способ 2: действие контроллера

Чтобы динамически генерировать файл, добавьте маршрут и контроллер, который возвращает обычный текст:

# config/routes.rb
get "/llms.txt", to: "llms#show"

# app/controllers/llms_controller.rb
class LlmsController < ApplicationController
  def show
    pages = Page.published.order(:title) # example data source
    body = "# Your App Name\n\n> Description of your app.\n\n## Core pages\n\n"
    body += pages.map { |p| "- [#{p.title}](#{page_url(p)}): #{p.summary}" }.join("\n")
    render plain: body, content_type: "text/plain"
  end
end

Раздача статических файлов в production

Проверка настройки

curl -sI https://yourdomain.com/llms.txt | grep -i content-type
# expect: content-type: text/plain

Используете Laravel? См. также Руководство по Laravel. Для более полного экспорта содержимого страниц добавьте llms-full.txt.

Источники