Использование Discourse для создания блога или платформы с прокруткой в стиле Reddit, X или Facebook

Это просто список того, каким я ожидал, что будет ощущаться сайт; тема в стиле Reddit / Discourse уже включала в себя большинство этих элементов.

Topic List Previews была самой первой реализацией этого.

Это не помогает никому. Эта тема о том, чтобы попробовать увидеть, чего я смогу достичь с помощью других участников, и, надеюсь, это поможет и другим, если это возможно :wink:

2 лайка

Я пытался помочь, но ты только отталкивал.

Удачи.

Извините, я не пытаюсь спорить. Я ответил на ваши вопросы, а вы прислали мне ссылку на Starzen, но это не то, чего я пытаюсь достичь. Затем я ответил, что видел их посты, на которые вы сослались, и они говорят о создании чего-то. Я тоже пытаюсь что-то создать. Извините, если вы чувствуете, что я отбиваюсь, но это не так. Честно говоря, я не понимаю, к чему вы клоните.

3 лайка

Я просто хочу поблагодарить автора топика за вдохновение (несколько недель назад он любезно ответил на мой вопрос о плагине, который использовался в его навигационном меню).

Моя цель — не воспроизвести интерфейс социальных сетей, а предложить нашим пользователям что-то более удобное, и я над этим работаю. Как только будет готово, я с удовольствием поделюсь результатами, финальным продуктом и репозиторием :slight_smile:

Кстати, делюсь кое-чем, что всегда полезно помнить и что некоторые пользователи могут забывать при ответе или взаимодействии: Core Rules of Netiquette

2 лайка

Действительно, поэтому я также очень поддерживаю новые попытки автора и всех остальных!

2 лайка

Я об этом подумал, и ситуация немного сложнее. Да, всё сосредоточено вокруг обсуждения, но чтение — очень важный фактор. Мы признаём, что существует огромная аудитория читателей/потребителей контента, и мне нравится идея сделать этот опыт максимально плавным. Я давно выступаю за легко настраиваемую ленту.

5 лайков

Первоначальный дизайн для «создай свою ленту» завершён

Далее нужно добавить новые таблицы в БД, примерно такие:

Поле Назначение
user_id Пользователь
category_id Измеряемая категория
impressions Осмысленные показы
opens Открытые темы
likes Понравившиеся темы
replies Написанные ответы
dwell_seconds Накопленное время чтения
affinity_score Рассчитанная степень предпочтения
updated_at Дата последнего пересчёта

Для первой версии потребуется только таблица интересов. Таблица поведения будет добавлена позже, когда я определюсь с подходом.

2 лайка

Сегодня я увидел кое-что связанное с этим на форуме Nodeloc: NodeLoc

Мне не знаком этот подход, но мне интересно посмотреть, куда он приведёт!

1 лайк

Это действительно впечатляет. Я много думал о маршруте /r, но в итоге отказался от этой идеи из-за ограничений категорий. Интересно, как это было реализовано.

1 лайк

Первоначальный выбор ленты добавлен и работает, стилизация пока не выполнена, как описано выше, до финальной фазы.

Выбор появляется при первом посещении ленты пользователем и не может быть закрыт, пока пользователь не выберет 3 категории по интересам. Также добавлена опция «Выбрать все».

Добавлена также вкладка «Редактировать интересы».

1 лайк

Персонализированная лента в начальной версии готова и работает, скачков загрузки CPU пока не наблюдается, всё быстро и функционирует как задумано.

Теперь она:

  • Оценивает темы по формуле: 55% интересы, 25% новизна, 10% популярность и 10% случайность.
  • При наличии подходящих тем размещает тему для открытия на каждом шестом месте.
  • Избегает трёх последовательных тем из одной категории, если есть альтернативы.
  • Обеспечивает независимость пагинации от удалённых или просмотренных элементов.
  • Перезагружает и пересортировывает ленту после изменения интересов.
  • Включает рабочий всплывающий элемент и кнопку Выбрать все.

а вот что происходит, когда вы меняете свою ленту:

5 лайков

Я решил сначала закончить со стилями, а потом продолжить.

3 лайка

Дальше нужно сделать следующее:

Оптимизировать то, что уже построено, прежде чем добавлять отслеживание поведения:

  • Ограничить количество кэшированных сессий ленты для каждого пользователя, чтобы повторные обновления не приводили к накоплению шести часов кэшированных списков.

  • Улучшить смешивание категорий, чтобы снизить нагрузку на ЦП при работе с большими очередями.

  • Измерять время загрузки ленты и использование кэша.

После этого придёт очередь отслеживания поведения: фиксация реальных показов, открытий тем и времени чтения. Предварительная загрузка не должна учитываться как чтение.

Сначала мы будем собирать эти сигналы, не изменяя порядок отображения. Как только отслеживание станет надёжным, мы сможем постепенно внедрить взвешивание поведения на 15%, когда пользователи увидят 30–50 сообщений.

1 лайк

Отличная инициатива!

Можно даже сказать, что «чтение — это фундамент», что было основополагающим постом в блоге, когда я только начинал работать менеджером сообщества:


@Damian_Boon как будет работать эта система, если к теме не прикреплены изображения?
В демо используются заголовочные изображения, сгенерированные ИИ, и я надеюсь, что это не станет стандартной практикой? Одно-два изображения — это нормально, но бесконечная череда фейковых картинок довольно быстро начинает раздражать :slight_smile:


Кроме того, в Safari для настольных компьютеров есть небольшой баг: ссылки на связанные темы не открываются:

3 лайка

Абсолютно так же, это просто вид темы, который он использует. Так что вы увидите то же самое, что видите сейчас, только без изображения.

Это демо-сайт, где весь контент сгенерирован ИИ для этого тестового случая.

Спасибо за информацию, я разберусь с этим позже, так как там используется кэш с главной страницы.

2 лайка

С учётом того, что я уже создал, мне нужно протестировать нагрузку на сервер. У меня есть аккаунт OpenRouter, и я хочу протестировать ситуацию, когда 10 ботов публикуют сообщения одновременно. Какой лучший путь для проведения такого теста, например:

боты:

  • username: wtf_gaming
    category: Gaming
    personality: gaming-news
    posts_per_hour: 30
    replies_per_hour: 15

  • username: wtf_tech
    category: Tech
    personality: tech-news
    posts_per_hour: 30
    replies_per_hour: 15

а затем 10 авторизованных ботов обновляют страницу /feed каждые 30 секунд.

Или создать небольшой автономный Python-сервис, который взаимодействует с Discourse и OpenRouter, вместо того чтобы отправлять запросы к ИИ напрямую внутри процесса Rails Discourse.

Какой лучший способ провести тестирование?

1 лайк

Выглядит очень здорово! В итоге получится оформить это как новую тему?

2 лайка

Компонент темы с фидом селектора категорий был бы здорово!

1 лайк