dots are not commas

This commit is contained in:
Rafael Silva 2025-05-09 16:24:20 -03:00
parent 5b353bd87d
commit 1c4806beb6
1 changed files with 18 additions and 17 deletions

View File

@ -11,9 +11,10 @@ module DiscourseAi
# Use the ConceptFinder persona to identify concepts
llm = DiscourseAi::Completions::Llm.default_llm
persona = DiscourseAi::Personas::ConceptFinder.new
context = DiscourseAi::Personas::BotContext.new(
context =
DiscourseAi::Personas::BotContext.new(
messages: [{ type: :user, content: content }],
user: Discourse.system_user.
user: Discourse.system_user,
inferred_concepts: DiscourseAi::InferredConcepts::Manager.list_concepts,
)
@ -31,9 +32,7 @@ module DiscourseAi
def self.create_or_find_concepts(concept_names)
return [] if concept_names.blank?
concept_names.map do |name|
InferredConcept.find_or_create_by(name: name)
end
concept_names.map { |name| InferredConcept.find_or_create_by(name: name) }
end
# Finds candidate topics to use for concept generation
@ -55,11 +54,12 @@ module DiscourseAi
category_ids: nil,
created_after: 30.days.ago
)
query = Topic.where(
query =
Topic.where(
"topics.posts_count >= ? AND topics.views >= ? AND topics.like_count >= ?",
min_posts,
min_views,
min_likes
min_likes,
)
# Apply additional filters
@ -79,9 +79,10 @@ module DiscourseAi
query = query.where("topics.id NOT IN (#{topics_with_concepts})")
# Score and order topics by engagement (combination of views, likes, and posts)
query = query.select(
query =
query.select(
"topics.*,
(topics.like_count * 2 + topics.posts_count * 3 + topics.views * 0.1) AS engagement_score"
(topics.like_count * 2 + topics.posts_count * 3 + topics.views * 0.1) AS engagement_score",
).order("engagement_score DESC")
# Return limited number of topics