discourse/plugins
Rafael dos Santos Silva 281d0c3e11
FEATURE: add configurable age penalty for semantic related topics (#34842)
Introduces two new site settings to apply exponential age-based
penalties to semantic topic suggestions, similar to algorithms
used by Reddit/HN:

* ai_embeddings_semantic_related_age_penalty (default: 0.3)
  Controls penalty strength. 0.0 = disabled, 0.3 = gentle bias
  toward newer content, 1.0+ = strong recency preference

* ai_embeddings_semantic_related_age_time_scale (default: 365 days)
  Controls time horizon. Use 365 for yearly scale, 90 for
  quarterly scale, etc.

Formula: similarity_score / POWER(age_in_days / time_scale + 1, penalty)

This allows sites to de-prioritize older topics in suggestions
while maintaining configurability for forums with different
content lifecycles. Performance optimized with conditional
JOINs only when penalty > 0.


"Age" here is using bumped_at to work with communities with long
lived mega topics too.

---------

Co-authored-by: Penar Musaraj <pmusaraj@gmail.com>
2025-09-18 10:24:19 -03:00
..
automation Update translations (#34804) 2025-09-15 10:47:22 +02:00
chat FEATURE: disable chat DM threads by default (#34840) 2025-09-17 16:52:13 +04:00
checklist DEV: Silence post-stream-widget-overrides in the checklist plugin (#33743) 2025-07-22 14:47:33 -03:00
discourse-adplugin Update translations (#34745) 2025-09-12 16:17:25 +02:00
discourse-affiliate Update translations (#34510) 2025-08-25 11:43:23 +02:00
discourse-ai FEATURE: add configurable age penalty for semantic related topics (#34842) 2025-09-18 10:24:19 -03:00
discourse-apple-auth Update translations (#34804) 2025-09-15 10:47:22 +02:00
discourse-assign REFACTOR: merge mobile and desktop user CSS into common file (#34787) 2025-09-15 09:16:47 -04:00
discourse-calendar UX: overhaul of GroupSelector with Floatkit (#34685) 2025-09-18 15:33:52 +08:00
discourse-chat-integration Update translations (#34804) 2025-09-15 10:47:22 +02:00
discourse-data-explorer Update translations (#34745) 2025-09-12 16:17:25 +02:00
discourse-details Update translations (#34436) 2025-08-21 11:02:39 +02:00
discourse-gamification Update translations (#34804) 2025-09-15 10:47:22 +02:00
discourse-github Update translations (#34510) 2025-08-25 11:43:23 +02:00
discourse-graphviz Update translations (#34537) 2025-08-26 16:12:30 +02:00
discourse-hcaptcha Update translations (#34568) 2025-08-27 11:00:03 +02:00
discourse-lazy-videos DEV: Remove remnant puts (#34716) 2025-09-04 11:12:38 +08:00
discourse-local-dates Update translations (#34745) 2025-09-12 16:17:25 +02:00
discourse-login-with-amazon DEV: Remove unnecessary rails_helper requires (#33812) 2025-07-24 13:50:04 +02:00
discourse-lti Build(deps-dev): Bump the lint group across 1 directory with 4 updates (#33881) 2025-07-28 18:02:41 +02:00
discourse-math Update translations (#34537) 2025-08-26 16:12:30 +02:00
discourse-microsoft-auth Update translations (#34413) 2025-08-19 16:23:59 +02:00
discourse-narrative-bot Update translations (#34804) 2025-09-15 10:47:22 +02:00
discourse-oauth2-basic Update translations (#34804) 2025-09-15 10:47:22 +02:00
discourse-openid-connect Update translations (#34413) 2025-08-19 16:23:59 +02:00
discourse-patreon Update translations (#34698) 2025-09-03 15:32:48 +02:00
discourse-policy Update translations (#34510) 2025-08-25 11:43:23 +02:00
discourse-post-voting Update translations (#34745) 2025-09-12 16:17:25 +02:00
discourse-presence Update translations (#34482) 2025-08-22 17:11:31 +02:00
discourse-reactions Update translations (#34804) 2025-09-15 10:47:22 +02:00
discourse-rss-polling Update translations (#34804) 2025-09-15 10:47:22 +02:00
discourse-solved Update translations (#34804) 2025-09-15 10:47:22 +02:00
discourse-subscriptions Update translations (#34804) 2025-09-15 10:47:22 +02:00
discourse-templates Update translations (#34804) 2025-09-15 10:47:22 +02:00
discourse-topic-voting Update translations (#34804) 2025-09-15 10:47:22 +02:00
discourse-user-notes Update translations (#34804) 2025-09-15 10:47:22 +02:00
discourse-zendesk-plugin Update translations (#34745) 2025-09-12 16:17:25 +02:00
footnote UX: add class to inline-footnote to display as inline-block (#34515) 2025-08-25 13:17:55 +02:00
poll Update translations (#34804) 2025-09-15 10:47:22 +02:00
spoiler-alert Update translations (#34804) 2025-09-15 10:47:22 +02:00
styleguide Update translations (#34745) 2025-09-12 16:17:25 +02:00