40 lines
1.3 KiB
Ruby
40 lines
1.3 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
module DiscourseAi
|
|
module Summarization
|
|
def self.topic_summary(topic)
|
|
if SiteSetting.ai_summarization_model.present? && SiteSetting.ai_summarization_enabled
|
|
DiscourseAi::Summarization::FoldContent.new(
|
|
DiscourseAi::Completions::Llm.proxy(SiteSetting.ai_summarization_model),
|
|
DiscourseAi::Summarization::Strategies::TopicSummary.new(topic),
|
|
)
|
|
else
|
|
nil
|
|
end
|
|
end
|
|
|
|
def self.topic_gist(topic)
|
|
if SiteSetting.ai_summarization_model.present? && SiteSetting.ai_summarization_enabled
|
|
DiscourseAi::Summarization::FoldContent.new(
|
|
DiscourseAi::Completions::Llm.proxy(SiteSetting.ai_summarization_model),
|
|
DiscourseAi::Summarization::Strategies::HotTopicGists.new(topic),
|
|
)
|
|
else
|
|
nil
|
|
end
|
|
end
|
|
|
|
def self.chat_channel_summary(channel, time_window_in_hours)
|
|
if SiteSetting.ai_summarization_model.present? && SiteSetting.ai_summarization_enabled
|
|
DiscourseAi::Summarization::FoldContent.new(
|
|
DiscourseAi::Completions::Llm.proxy(SiteSetting.ai_summarization_model),
|
|
DiscourseAi::Summarization::Strategies::ChatMessages.new(channel, time_window_in_hours),
|
|
persist_summaries: false,
|
|
)
|
|
else
|
|
nil
|
|
end
|
|
end
|
|
end
|
|
end
|