Onebox de polling RSS

:information_source: Résumé RSS Polling Onebox affiche les imports RSS Polling sous forme de oneboxes de l’article d’origine, avec en option des résumés de flux, des descriptions YouTube et des formats de titre
:hammer_and_wrench: Lien du dépôt Peter-Petrik/discourse-rss-onebox
:open_book: Guide d’installation Comment installer des plugins dans Discourse

Fonctionnalités

  1. Rendu en onebox : les imports RSS Polling dans les catégories de votre choix deviennent une onebox de l’URL de l’article - titre, image et description de la page de l’article - au lieu du corps du flux tronqué à son premier paragraphe. Les imports dans les autres catégories restent inchangés.
  2. « Afficher l’article complet » masqué uniquement dans les catégories sélectionnées.
  3. Résumés de flux (optionnel) : lorsqu’une page d’article n’a pas de description propre, le résumé du flux apparaît à l’intérieur de la onebox, ou sous le lien si aucune onebox ne peut être construite.
  4. Descriptions YouTube (optionnel) : la description complète de la vidéo depuis le flux de la chaîne apparaît sous le lecteur, avec les sauts de ligne et les liens cliquables.
  5. Formats de titre (optionnel) : des formats distincts pour les sujets de blogs et de YouTube utilisant %{title} et %{source}, par exemple %{source} blog : %{title}. Les renommages sont silencieux - aucune révision, aucun relèvement, aucune notification - et les anciens liens continuent de fonctionner.
  6. Noms d’affichage : une page d’administration liste tous les flux RSS Polling avec leur nom publié, où vous pouvez définir le nom utilisé pour %{source}. L’enregistrement re-rend les titres de ce flux.
  7. Protection contre les mises à jour de flux : un article source modifié ou un format de flux modifié ne remplace plus un sujet en onebox.
  8. Tâches Rake pour les sujets existants : rss_onebox:convert transforme les imports antérieurs en oneboxes, et rss_onebox:enhance remplit les résumés, descriptions et titres. Les deux fonctionnent par défaut en mode sec (dry run).

Justification

Nous exploitons un forum qui intègre les blogs et chaînes YouTube des membres dans une seule catégorie. Les extraits de RSS Polling affichaient mal de nombreux flux - formatage cassé, images manquantes, un bouton « Afficher l’article complet » qui re-scrapait la page - tandis que la même URL collée dans un post produisait une onebox propre. Ce plugin fait en sorte que chaque import ressemble à ce lien collé, et complète ce que les pages seules ne pouvaient pas fournir.

Configuration

Après l’installation, allez dans Administration → Plugins → RSS Polling Onebox :

  1. Paramètres : activez le plugin, sélectionnez les catégories dont les imports doivent être en onebox, et activez les fonctionnalités optionnelles.
  2. Noms d’affichage : définissez le nom utilisé pour %{source} dans les titres, par flux, ou laissez vide pour utiliser le nom publié par le flux. Actualiser les noms publiés lit tous les flux activés.

Pour les sujets importés avant l’installation, exécutez rake rss_onebox:convert puis rake rss_onebox:enhance dans le conteneur (les deux en mode sec ; ajoutez APPLY=1 pour écrire). Le README documente chaque paramètre et tâche, et le CHANGELOG liste chaque version.

Limites

  1. Testé sur Discourse 2026.7 ESR ; la compatibilité avec main à partir de septembre 2026 est vérifiée dans le code. Les versions plus anciennes ne sont pas testées.
  2. Nécessite RSS Polling, qui est inclus avec Discourse.
  3. Certaines fonctionnalités enveloppent les internals de RSS Polling et de TopicEmbed car les hooks documentés n’existent pas encore ; voir RSS Polling : points d’extension pour les plugins.
  4. La lecture native des descriptions YouTube dans RSS Polling est en discussion dans RSS Polling : lire la description vidéo des flux de chaînes YouTube ; si cela est intégré au noyau, ce plugin l’utilisera.
  5. La qualité de la onebox dépend des balises Open Graph de chaque page d’article.

Questions et problèmes : répondez ici, ou ouvrez un ticket sur GitHub.

3 « J'aime »

J’aime l’idée et je me demande ce que ça donnerait d’utiliser un LLM pour générer un résumé soigné plutôt qu’un extrait arbitraire ?

Ce pourrait être un bon compromis, car, à mon humble avis, se contenter de coller des liens semble aller à l’encontre de l’esprit d’un forum.

Merci d’avoir partagé !

2 « J'aime »

C’est super. Je me demandais si votre site est public, pourrions-nous peut-être jeter un œil pour le voir en action, pour ainsi dire ?

Comme cela nécessite le plugin RSS Polling, faut-il configurer le flux dans les deux plugins ? Ou seulement dans le vôtre ?

1 « J'aime »

Merci ! Le texte n’est pas arbitraire, en revanche : il s’agit de la description de l’article elle-même ou du résumé du flux de l’auteur, de sorte que ce que voient les membres sont les mots du blogueur plutôt qu’une reformulation. Le sujet en lui-même est l’endroit où les membres discutent de la publication ; le onebox est la porte d’entrée vers ce sujet.

Un résumé par LLM en option est une idée intéressante. Les gists de Discourse AI résumment le contenu d’un sujet, qui ici n’est que le lien, ce qui signifierait que le plugin lirait l’article et le transmettrait au modèle configuré sur le forum. Je préférerais que ce soit une option activable (opt-in), car cela consomme des jetons et remplace les mots de l’auteur par du texte généré — mais j’ai noté la suggestion.

Malheureusement non — notre forum est réservé aux membres, donc les captures d’écran ci-dessus proviennent directement des sujets en direct. N’hésitez pas si vous souhaitez voir quelque chose de plus spécifique, je pourrai en publier davantage.

Uniquement dans RSS Polling. Vous ajoutez et gérez les flux là-bas exactement comme aujourd’hui ; ce plugin n’a pas de flux propres. Il agit sur ce que RSS Polling importe dans les catégories que vous choisissez, et la page « Noms d’affichage » liste simplement les flux de RSS Polling pour que vous puissiez leur donner un nom.

1 « J'aime »

Très bien, Peter, merci d’avoir pris cela en compte ! En fait, le prompt peut être conçu pour ne pas modifier le ton de l’auteur et pour que le résultat se limite uniquement aux données fournies par les liens.

C’est l’approche utilisée sur https://ask.discourse.com, où les réponses sont strictement liées à la documentation et à une base de connaissances soigneusement sélectionnée. Le modèle n’utilise pratiquement pas ses données d’entraînement, et je pense que c’est la méthode la plus ingénieuse et la plus productive pour exploiter réellement cette technologie.

Il existe également des modèles peu coûteux qui excellent dans la synthèse. J’espère donc que cette fonctionnalité sera implémentée ; elle pourrait améliorer l’expérience de lecture ainsi que les pratiques de SEO/IA-SEO.