RSS 폴링 원박스

:information_source: 요약 RSS Polling Onebox는 RSS Polling 가져오기를 원본 기사의 원박스(onebox)로 렌더링하며, 선택적으로 피드 요약, YouTube 설명, 제목 형식을 제공합니다
:hammer_and_wrench: 리포지토리 링크 Peter-Petrik/discourse-rss-onebox
:open_book: 설치 가이드 Discourse에서 플러그인 설치 방법

기능

  1. 원박스 렌더링: 사용자가 선택한 카테고리에서 RSS Polling으로 가져온 항목은 피드 본문의 첫 단락으로 잘린 대신, 기사 URL의 원박스(기사 페이지의 제목, 이미지, 설명)로 표시됩니다. 다른 카테고리의 가져오기는 변경되지 않습니다.
  2. “전체 게시물 보기” 숨김: 선택한 카테고리에서만 숨겨집니다.
  3. 피드 요약 (선택 사항): 기사 페이지에 자체 설명이 없는 경우, 피드에서 가져온 요약이 원박스 안에 표시되거나, 원박스를 만들 수 없는 경우 링크 아래에 표시됩니다.
  4. YouTube 설명 (선택 사항): 채널 피드에서 가져온 전체 영상 설명이 플레이어 아래에 줄바꿈과 클릭 가능한 링크를 포함하여 표시됩니다.
  5. 제목 형식 (선택 사항): 블로그와 YouTube 주제에 대해 %{title}과 %{source}를 사용하여 개별 형식을 사용할 수 있습니다. 예를 들어 %{source} blog: %{title}. 이름 변경은 조용히 이루어지며(수정 이력, 알림 없음) 기존 링크는 계속 작동합니다.
  6. 표시 이름: 관리자 페이지에서 모든 RSS Polling 피드와 게시된 이름을 나열하여 %{source}에 사용할 이름을 설정할 수 있습니다. 저장하면 해당 피드의 제목이 다시 렌더링됩니다.
  7. 피드 업데이트에 대한 보호: 수정된 원본 게시물이나 변경된 피드 형식이 더 이상 원박스화된 주제를 덮어쓰지 않습니다.
  8. 기존 주제를 위한 Rake 작업: rss_onebox:convert은 이전 가져오기를 원박스로 변환하고, rss_onebox:enhance는 요약, 설명, 제목을 백필(backfill)합니다. 둘 다 기본적으로 건실행(dry run)으로 실행됩니다.

근거

우리는 회원들의 블로그와 YouTube 채널을 하나의 카테고리로 가져오는 포럼을 운영합니다. RSS Polling의 발췌문은 많은 피드를 poorly 렌더링했습니다(깨진 서식, 누락된 이미지, 페이지를 다시 스크래핑하는 “전체 게시물 보기” 버튼) 반면, 게시물에 동일한 URL을 붙여넣으면 깔끔한 원박스가 생성되었습니다. 이 플러그인은 모든 가져오기가 그 붙여넣은 링크처럼 보이게 하고, 페이지만으로는 제공할 수 없었던 내용을 채워 넣습니다.

설정

설치 후 관리자 → 플러그인 → RSS Polling Onebox로 이동합니다:

  1. 설정: 플러그인을 활성화하고, 원박스로 표시할 가져오기가 있는 카테고리를 선택하며, 선택적 기능을 켜세요.
  2. 표시 이름: 제목의 %{source}에 사용할 이름을 피드별로 설정하거나, 피드가 게시하는 이름을 사용하려면 비워 두세요. 게시된 이름 새로고침은 모든 활성화된 피드를 읽습니다.

설치 전에 가져온 주제에 대해서는 컨테이너 내에서 rake rss_onebox:convert을 실행한 다음 rake rss_onebox:enhance를 실행하세요(둘 다 건실행이며, 작성하려면 APPLY=1을 추가). README에는 모든 설정과 작업이 문서화되어 있으며, CHANGELOG에는 모든 릴리스가 나열되어 있습니다.

주의사항

  1. Discourse 2026.7 ESR에서 테스트되었습니다. 2026년 9월 기준 main과의 호환성은 코드에서 확인되었습니다. 이전 버전은 테스트되지 않았습니다.
  2. Discourse에 번들로 제공되는 RSS Polling이 필요합니다.
  3. 일부 기능은 문서화된 훅이 아직 존재하지 않기 때문에 RSS Polling과 TopicEmbed의 내부 구조를 래핑합니다. RSS Polling: 플러그인을 위한 확장 지점을 참조하세요.
  4. RSS Polling에서 YouTube 설명을 네이티브로 읽는 기능은 RSS Polling: YouTube 채널 피드에서 영상 설명 읽기에서 논의 중입니다. 코어에 포함되면 이 플러그인이 이를 사용할 것입니다.
  5. 원박스 품질은 각 기사 페이지의 Open Graph 태그에 따라 달라집니다.

질문 및 문제: 여기에 답변을 달거나 GitHub에서 이슈를 열 수 있습니다.

3개의 좋아요

좋아 보이는데, 임의의 발췌 대신 LLM을 활용하여 잘 다듬은 요약을 생성하는 건 어떨까 궁금합니다.

제 소견으로는 단순히 링크를 붙여넣는 것만으로는 포럼의 본래 목적을 해칠 수 있으니, 이 방식이 좋은 중재안이 될 수 있을 것 같습니다.

공감해 주셔서 감사합니다!

2개의 좋아요

정말 훌륭해 보입니다. 사이트가 공개되어 있다면, 실제로 어떻게 작동하는지 한번 볼 수 있을까요?

RSS 폴링 플러그인이 필요하다고 하셨는데, 두 플러그인 모두에서 피드를 설정해야 하나요? 아니면 해당 플러그인에서만 설정하면 되나요?

1개의 좋아요

감사합니다! 다만 해당 텍스트는 임의적으로 선택된 것이 아니라, 기사의 자체 설명이나 저자의 피드 요약문입니다. 따라서 회원들이 보는 것은 블로그 운영자의 원문이지, 재작성된 내용이 아닙니다. 주제(topic) 자체는 회원들이 해당 게시물을 논의하는 공간이며, 원박스(onebox)는 그 공간으로 들어가는 입구 역할을 합니다.

LLM 요약을 선택 사항으로 제공하는 것은 흥미로운 아이디어입니다. Discourse AI의 지스트(Gist)는 주제 내용을 요약하는데, 여기서는 내용이 링크뿐이므로 플러그인이 기사를 읽고 이를 포럼에 설정된 모델에 전달해야 합니다. 토큰 비용이 발생하고 저자의 원문이 생성된 문구로 대체되므로 선택 사항(opt-in)으로 하고 싶습니다. 다만 해당 요청은 메모해 두었습니다.

아쉽게도 우리 포럼은 회원 전용이므로, 위의 스크린샷은 라이브 주제에서 직접 캡처한 것입니다. 특별히 보고 싶은 부분이 있다면 더 많은 스크린샷을 게시할 수 있습니다.

RSS Polling만 설정하면 됩니다. 현재와 동일하게 그곳에서 피드를 추가하고 관리하시면 됩니다. 이 플러그인에는 자체 피드가 없습니다. 사용자가 선택한 카테고리로 RSS Polling이 가져온 콘텐츠에 대해 작동하며, Display names 페이지는 이름을 붙일 수 있도록 RSS Polling의 피드를 단순히 나열할 뿐입니다.

1개의 좋아요

멋지네요, Peter. 검토해 주셔서 감사합니다. 프롬프트를 처리하면 저자의 톤을 유지하면서 링크에서 지정된 데이터만으로 결과를 생성하도록 할 수 있습니다.

이것은 https://ask.discourse.com 에서 사용되는 접근 방식과 같으며, 응답은 문서와 선별된 데이터베이스에 엄격하게 기반합니다. 모델은 학습 데이터를 거의 사용하지 않으며, 저는 이것이 해당 기술을 실제로 활용하는 가장 지혜롭고 생산적인 방법이라고 생각합니다.

또한 요약을 정말 잘 수행하는 저렴한 모델들도 있습니다. 따라서 이 기능이 구현되기를 희망합니다. 독서 경험을 개선할 뿐만 아니라 SEO/IA-SEO 관행에도 도움이 될 수 있기 때문입니다.