Gerador de Plugin Discourse llms.txt 🤖

Gerador llms.txt para Discourse

:information_source: Resumo Gera automaticamente arquivos llms.txt que tornam o conteúdo do seu fórum descobrível por Modelos de Linguagem de Grande Porte (LLMs) como ChatGPT, Claude e outros sistemas de IA
:hammer_and_wrench: Link do Repositório GitHub - kaktaknet/discourse-llms-txt-generator: 🤖 Discourse llms.txt Generator Plugin. Automatically generates llms.txt and llms-full.txt files for your Discourse forum to optimize content discovery by Large Language Models (LLMs) and AI systems. · GitHub
:open_book: Guia de Instalação Como instalar plugins no Discourse

Recursos

Este plugin implementa o padrão llms.txt — uma convenção proposta para fornecer conteúdo amigável a LLMs a partir de sites. Pense nele como um “robots.txt para IA” que ajuda o conteúdo do seu fórum a aparecer em respostas geradas por IA.

Para documentação detalhada dos recursos, consulte README.md

Para documentação técnica e desenvolvimento, consulte CONTRIBUTING.md

Embora este vídeo não seja especificamente sobre o Discourse ou seus plugins, ele faz um ótimo trabalho explicando por que os arquivos llms.txt são importantes para o seu fórum.

Milhares de sites — incluindo muitas das maiores e mais respeitadas empresas de tecnologia do mundo — já implementaram o padrão llms.txt em seus próprios domínios. Exemplos incluem:

  • :white_check_mark: Amazon AWS — https://docs.aws.amazon.com/llms.txt
  • :white_check_mark: Cloudflare — https://developers.cloudflare.com/llms.txt
  • :white_check_mark: Stripe — https://stripe.com/llms.txt
  • :white_check_mark: Angular — https://angular.dev/llms.txt
  • :white_check_mark: Redis — https://redis.io/llms.txt
  • :white_check_mark: Docker — https://docs.docker.com/llms.txt
  • :white_check_mark: Model Context Protocol — https://modelcontextprotocol.io/llms-full.txt

Quando gigantes da indústria adotam um padrão em escala — muito antes de se tornar “oficial” — é um sinal claro de que o llms.txt resolve um problema real e urgente. Tais empresas nunca lançam iniciativas em todo o site de forma leviana; elas sempre têm uma razão estratégica sólida. A adoção rápida e em grande escala do llms.txt pela indústria de tecnologia mostra o quão importante o conteúdo estruturado para IA se tornou, e que a própria indústria está impulsionando essa adoção — até mais rápido do que os órgãos de padronização formais.

Principais capacidades:

  1. Arquivo de Navegação Principal (/llms.txt)

    • Visão geral estruturada do seu fórum com categorias, subcategorias e tópicos mais recentes
    • Ajuda os sistemas de IA a entenderem a organização do seu fórum instantaneamente
    • Atualiza-se automaticamente conforme seu fórum cresce
  2. Índice de Conteúdo Completo (/llms-full.txt)

    • Índice completo do fórum com todos os tópicos categorizados e prontos para consumo por IA
    • Filtragem configurável por visualizações e contagem de tópicos
    • Excertos de posts opcionais para indexação mais rápida pela IA
  3. Arquivos Dinâmicos por Recurso

    • Gere llms.txt para qualquer categoria: /c/nome-da-categoria/123/llms.txt
    • Gere llms.txt para qualquer tópico: /t/slug-do-topico/456/llms.txt
    • Gere llms.txt para qualquer tag: /tag/tutorial/llms.txt
    • Criados sob demanda sem armazenamento físico
  4. Índice de Sitemap (/sitemaps.txt)

    • Lista completa de todos os URLs llms.txt para descoberta eficiente por rastreadores de IA
    • Integra-se automaticamente com robots.txt e sitemap.xml
  5. Proteção SEO

    • URLs canônicos nos cabeçalhos HTTP (conforme RFC 6596)
    • Previne penalidades de conteúdo duplicado por mecanismos de busca
    • Atribuição adequada aos URLs originais do fórum
  6. Cache Inteligente

    • Verificações em segundo plano horárias para novo conteúdo
    • Regenera apenas quando necessário
    • Tempos de resposta rápidos (menos de 50ms)
  7. Controle de Bots

    • Bloqueie rastreadores de IA específicos enquanto permite acesso ao fórum
    • Lista separada por vírgulas de user agents para bloquear
    • Integração automática com robots.txt via view connector
  8. Privacidade e Segurança

    • Categorias privadas automaticamente excluídas
    • Verificações de permissão do Guardian para arquivos dinâmicos
    • Filtragem de segurança no nível do SQL
    • Nenhum dado pessoal exposto

Benefícios para o seu fórum:

  • Maior Visibilidade: Seu conteúdo aparece em respostas do ChatGPT, Claude e outras IAs
  • Atribuição Direta: Sistemas de IA citam e linkam de volta para o seu fórum
  • Mais Tráfego: Maior descoberta por meio de buscas impulsionadas por IA
  • Melhor GEO: Otimização para Motores Generativos para sistemas de IA
  • Sem Manutenção: Geração e atualizações automáticas

Configuração

Após instalar o plugin, navegue até Admin → Configurações → Plugins → discourse-llms-txt-generator

Etapa 1: Ative o plugin

Defina llms_txt_enabled como true (ativado por padrão)

Etapa 2: Configure a indexação

Defina llms_txt_allow_indexing como true para permitir o acesso de rastreadores de IA (ativado por padrão)

Essa configuração controla se os arquivos llms.txt aparecem no seu robots.txt como permitidos ou proibidos.

Etapa 3: Defina filtros de conteúdo

Configure essas configurações com base no tamanho do seu fórum:

  • llms_txt_min_views: Visualizações mínimas de tópicos para inclusão (padrão: 50)
  • llms_txt_posts_limit: Quantos tópicos incluir
    • small: 500 tópicos (recomendado para fóruns grandes)
    • medium: 2.500 tópicos (recomendado para a maioria dos fóruns)
    • large: 5.000 tópicos
    • all: Todos os tópicos (use com cautela em fóruns grandes)

Etapa 4: Opcional - Adicione uma descrição personalizada

Preencha llms_txt_full_description com 2 a 4 frases descrevendo o propósito e a comunidade do seu fórum. Isso ajuda os sistemas de IA a fornecerem informações mais precisas sobre o seu fórum.

Exemplo:

Este fórum é dedicado a discutir programação em Python, com foco em desenvolvimento web,
ciência de dados e aprendizado de máquina. Nossa comunidade inclui iniciantes e desenvolvedores experientes compartilhando soluções práticas e melhores práticas.

Etapa 5: Opcional - Bloqueie bots específicos

Se desejar bloquear certos rastreadores de IA, insira os nomes de seus user agents em llms_txt_blocked_user_agents como uma lista separada por vírgulas:

Exemplo: Omgilibot, ChatGPT-User, CCBot

Etapa 6: Verifique a instalação

Acesse seu fórum em:

  • /llms.txt - Arquivo de navegação principal
  • /llms-full.txt - Índice de conteúdo completo
  • /sitemaps.txt - Sitemap completo

Verifique seu /robots.txt para confirmar a integração.

Configurações

Nome Padrão Descrição
llms_txt_enabled true Ativar ou desativar o plugin
llms_txt_allow_indexing true Permitir que rastreadores de IA acessem arquivos llms.txt (afeta robots.txt)
llms_txt_blocked_user_agents "" Lista separada por vírgulas de user agents de bots para bloquear dos arquivos llms.txt
llms_txt_intro_text Texto personalizado Texto de introdução que aparece no arquivo llms.txt principal
llms_txt_full_description "" Descrição personalizada para llms-full.txt para ajudar a IA a entender o contexto do seu fórum
llms_txt_min_views 50 Visualizações mínimas de tópicos necessárias para inclusão em llms-full.txt
llms_txt_posts_limit medium Limite de contagem de tópicos: small (500), medium (2.500), large (5.000) ou all
llms_txt_include_excerpts false Incluir excertos de posts em llms-full.txt (aumenta significativamente o tamanho do arquivo)
llms_txt_post_excerpt_length 500 Comprimento máximo do excerto em caracteres (100-5000) se excertos estiverem ativados
llms_txt_latest_topics_count 50 Número de tópicos mais recentes para mostrar no arquivo llms.txt principal
llms_txt_cache_minutes 60 Duração do cache em minutos para o arquivo de navegação

Notas importantes:

  • Ativar llms_txt_include_excerpts com llms_txt_posts_limit definido como all pode causar tamanhos de arquivo extremamente grandes (potencialmente 10-100+ MB) e alta carga no servidor em fóruns grandes
  • Categorias privadas são automaticamente excluídas de todos os arquivos llms.txt
  • Arquivos dinâmicos por recurso (categorias, tópicos, tags) não são armazenados em cache e são gerados sob demanda
  • O plugin usa view connectors para integração com robots.txt — não é necessário editar manualmente o robots.txt

Detalhes Técnicos

Arquitetura:

  • Geração sob demanda sem arquivos pré-gerados
  • Cache inteligente com verificações em segundo plano horárias
  • Consciente de permissões usando o Guardian do Discourse
  • Filtragem de segurança no nível do SQL para conteúdo privado
  • URLs canônicos nos cabeçalhos HTTP para evitar penalidades de SEO

Desempenho:

  • Arquivo de navegação armazenado em cache por 60 minutos (configurável)
  • Arquivo de conteúdo completo gerado sob demanda
  • Cache inteligente regenera apenas quando há novo conteúdo
  • Tempo de resposta abaixo de 50ms para conteúdo em cache

Compatibilidade:

  • Discourse 2.7.0+
  • Ruby 2.7+
  • Testado no Discourse 3.6.0.beta3

Conformidade com padrões:

  • Padrão llms.txt (https://llmstxt.org/)
  • RFC 3986 (codificação de URL para caracteres internacionais)
  • RFC 6596 (Cabeçalhos de Link Canônico)

Casos de Uso

Fóruns Comunitários:
Suas discussões e soluções aparecem quando os usuários fazem perguntas relevantes a assistentes de IA, direcionando tráfego qualificado de volta para o seu fórum.

Sites de Documentação:
Sistemas de IA podem referenciar sua documentação e tutoriais, fornecendo informações precisas com atribuição adequada.

Fóruns de Suporte:
Os usuários obtêm respostas diretas da sua base de conhecimento por meio de assistentes de IA, com links para discussões completas.

Comunidades Técnicas:
Desenvolvedores descobrem o conteúdo do seu fórum por meio de assistentes de codificação impulsionados por IA, aumentando o engajamento da comunidade.

Manutenção

O plugin requer manutenção mínima:

  • O cache é atualizado automaticamente a cada hora
  • Atualizações de conteúdo ocorrem automaticamente na criação/edição de posts
  • Nenhuma geração manual de arquivos necessária
  • Tarefas rake opcionais disponíveis: llms_txt:refresh e llms_txt:check

Solução de Problemas

Arquivos inacessíveis:

  • Verifique se llms_txt_enabled está como true
  • Confirme que llms_txt_allow_indexing está como true
  • Verifique se o plugin está instalado em Admin → Plugins

Conteúdo vazio:

  • Certifique-se de ter tópicos públicos com visualizações suficientes (verifique a configuração llms_txt_min_views)
  • Verifique se as categorias são públicas (não restritas à leitura)
  • Verifique a configuração llms_txt_posts_limit

Integração com robots.txt não funcionando:

  • Limpe o cache do robots.txt: Rails.cache.delete('robots_txt')
  • Use a tarefa rake: bundle exec rake llms_txt:refresh
  • Reinicie o Discourse: ./launcher restart app

Suporte

Licença

Licença MIT — Software gratuito e de código aberto

Créditos

8 curtidas

Instalei o plugin há alguns dias. A instalação foi tranquila, graças à documentação do autor.

O que vejo agora. Muitos arquivos txt foram gerados no meu site, por exemplo https://discuss.rabkesov.ru/llms.txt. Eu sei que é muito cedo para esperar que um chatbot de IA (Perplexity) mostre meu conteúdo como resposta no chat.

Então, para verificar a capacidade de ser adequado para LLM, fiz o upload para o Qwen (infelizmente ele não suporta o link acima):

Você poderia analisar a página llms.txt e me dizer o que você entendeu do que leu? Faça uma árvore na forma de um mapa mental (Mermaid)

P.S. Se eu pedir para traduzir tudo para o inglês, a árvore quebra.

image
image

Aqui está a estrutura do meu site (apenas a parte pública). O LLM poderia criá-la a partir do llms.txt! Eu acho que este é apenas uma pequena parte dos casos possíveis.


Saída de texto sem Mermaid
Você poderia analisar a página llms.txt e me dizer o que você entendeu do que leu?

Sim. Com base no conteúdo de llms.txt, eis o que entendi:

O arquivo descreve “discuss | Комната ломки”, que se traduz aproximadamente como “Fórum de Discussão | A Sala da Quebra” — um espaço metaforicamente destinado a quebrar ilusões em TI, não pessoas. Seu slogan e foco sugerem um ambiente reflexivo, crítico e impulsionado pela comunidade, onde profissionais de TI podem examinar suposições, compartilhar experiências e colaborar em desafios práticos.

Temas Centrais e Propósito:

  • Reflexão crítica sobre práticas de TI, caminhos de carreira, dinâmicas organizacionais e crescimento pessoal.
  • Ênfase em ferramentas e metodologias que simplificam o trabalho: documentação (Markdown/GitLab/Docsify), visualização (Mermaid/Drawio), mecanismos de feedback e rascunho colaborativo — particularmente dentro de uma plataforma corporativa baseada em Discourse.
  • Uma mistura de tópicos técnicos, filosóficos e pessoais, frequentemente interligados: por exemplo, “Por que escolhemos tarefas fáceis”, “Custo da paz de espírito”, “Procrastinação e evitação de decisões”.

Estrutura:

O site é organizado em categorias temáticas, incluindo:

  • AI: Discussões sobre modelos (ex: Gemma, LM Studio), implantação (Runpod, calculadoras de GPU) e ferramentas.
  • Discourse: Tópicos de backend técnico (configuração do site, tarefas rake, métodos de autenticação, parâmetros ocultos).
  • Основная (Principal): Reflexões centrais sobre cultura de trabalho, liderança, padrões de documentação e responsabilidade.
  • Блог (Blog): Narrativas pessoais (ex: mudanças de carreira, realocação para Samara, incidentes no local de trabalho).
  • Школа (Escola): Recursos para estudantes, incluindo ética (consentimento parental para usuários com mais de 14 anos) e literacia digital (parâmetros UTM).
  • Анонимная (Anônima): Espaço seguro para ideias sensíveis.
  • Книги (Livros), Мысль дня (Pensamento do Dia), etc. — apoiando a reflexão intelectual e diária.

Sinais Técnicos e Culturais Notáveis:

  • Público multilíngue e internacional: por exemplo, guias de autenticação paralelos em russo/inglês.
  • Preocupação com a autenticação inclusiva: por exemplo, preservação do login do Google/GitHub para usuários não russos, ao mesmo tempo que suporta provedores domésticos (VK, Mail.ru, OK).
  • Forte interesse em automação, padronização e DevOps: GitLab CI/CD, manipulação de artefatos, integração com Runpod, implantação baseada em SSH.
  • Tema recorrente de desilusão profissional, especialmente entre engenheiros seniores transferidos para funções de suporte — e estratégias para lidar ou planejar saídas.

Em resumo, llms.txt descreve uma plataforma comunitária madura e cuidadosamente projetada que combina profundidade técnica com introspecção psicológica e organizacional — visando profissionais de TI experientes que navegam pela complexidade, esgotamento e busca por significado em seu trabalho.

Avise-me se você gostaria de um mapa visual, agrupamento temático ou sugestões para os próximos passos (por exemplo, melhorar a descoberta, engajamento ou integração).


Quanto a mim, é um ótimo plugin para ser usado em SEO, etc.

Alguns pontos para explorar:

  1. Como lidar com conteúdo não em inglês? A linguagem EN do texto em llms.txt importa para o LLM?
  2. Encontrar a prova de que o arquivo raiz final llms.txt nunca contém páginas privadas (llms.txt é criado para todas as páginas do site neste momento)
  3. Verificar as permissões em /admin/site_settings/category/security?filter=crawler para que os bots de IA necessários não sejam bloqueados :slight_smile:
  4. Pensamentos sobre a mistura ocasional da estrutura do site com as memórias que foram salvas anteriormente no LLM (isso não é culpa do plugin, mas um recurso do chatbot, veja o exemplo abaixo)

Sobre o ponto nº 4. Na primeira vez, o Qwen decidiu que:

  • Eu planejava deixar meu trabalho
  • Eu estava tendo problemas no relacionamento :slight_smile:
    e adicionou esses pontos à descrição do site!

O Qwen pode misturar memórias com a solicitação atual de análise do mapa do site, fornecida como llms.txt. Fique atento :slight_smile:

2 curtidas

Obrigado por este plugin, é uma excelente adição ao Discourse.

Apenas mencionando aqui caso alguém mais esteja tendo o mesmo problema com o conflito entre este plugin e a funcionalidade relativamente recente do Discourse (que ainda é meio incompleta), que implementa llms.txt de forma completamente manual, sem fazer nada do que este plugin faz de útil.

O novo recurso do Discourse substitui completamente o caminho /llms.txt mesmo que ele não esteja configurado ou ativado. Confesso que fiquei um pouco atônito ao ver que isso é considerado um recurso útil ou pronto para produção no núcleo do Discourse.

Para mim, isso significou que, enquanto /llms-full.txt e /sitemaps.txt funcionavam perfeitamente, o caminho principal /llms.txt não funcionava de forma alguma (404).

Minha solução alternativa foi criar um llms.txt manual que eu faço o upload manualmente, apontando para /llms-full.txt.

Seria bom se:

  • O recurso do núcleo do Discourse fosse atualizado para fazer o que este plugin faz, ou
  • O recurso do núcleo do Discourse não substituísse llms.txt e conflitasse com este plugin, a menos que você o ative fazendo o upload de um arquivo llms.txt.
4 curtidas

Obrigado pela sua observação e pelo relatório em Enabling native LLMs.txt support in Discourse - #7 by pacharanero

/llms-full.txt ainda funciona, mas /llms.txt infelizmente quebrou…

3 curtidas

Vou dar uma olhada no que pode ser feito a curto prazo e lançarei uma atualização para que o núcleo não substitua o comportamento do plugin. Espero que não seja muito difícil. Afinal, essa é parte da filosofia completa dos plugins: substituir e ajustar finamente os recursos e comportamentos básicos, incluindo coisas como essa.

1 curtida