discourse/plugins/discourse-ai/spec
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
..
configuration DEV: Only run embeddings test if there's a valid embedding model (#34525) 2025-08-25 17:21:39 -03:00
db/migrate DEV: Fix random typos (#33839) 2025-07-24 22:04:13 +02:00
fabricators
fixtures
jobs FEATURE: Ability to regenerate short summaries (#34345) 2025-08-18 13:48:41 -07:00
lib FEATURE: add configurable age penalty for semantic related topics (#34842) 2025-09-18 10:24:19 -03:00
models FEATURE: Add support for matryoshka in Gemini embeddings (#34145) 2025-08-07 15:35:08 -03:00
reports
requests FIX: LLM config must be valid before running a test (#34806) 2025-09-15 11:40:01 -03:00
serializers
services FEATURE: configure a default LLM model for all features (#33752) 2025-07-28 16:08:00 -03:00
shared/inference
support
system FIX: AI usage doesn't refresh custom date ranges correctly (#34816) 2025-09-16 10:16:01 -07:00
tasks
plugin_helper.rb FEATURE: configure a default LLM model for all features (#33752) 2025-07-28 16:08:00 -03:00
plugin_spec.rb FEATURE: configure a default LLM model for all features (#33752) 2025-07-28 16:08:00 -03:00