2023-04-04 11:24:09 -03:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
module DiscourseAi
|
|
|
|
module Summarization
|
2024-07-04 10:48:18 +10:00
|
|
|
def self.default_strategy
|
|
|
|
if SiteSetting.ai_summarization_model.present? && SiteSetting.ai_summarization_enabled
|
|
|
|
DiscourseAi::Summarization::Strategies::FoldContent.new(SiteSetting.ai_summarization_model)
|
|
|
|
else
|
|
|
|
nil
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2023-04-04 11:24:09 -03:00
|
|
|
class EntryPoint
|
|
|
|
def inject_into(plugin)
|
2024-07-02 08:51:59 -07:00
|
|
|
plugin.add_to_serializer(:current_user, :can_summarize) do
|
2024-07-04 10:48:18 +10:00
|
|
|
return false if !SiteSetting.ai_summarization_enabled
|
2024-07-02 08:51:59 -07:00
|
|
|
scope.user.in_any_groups?(SiteSetting.ai_custom_summarization_allowed_groups_map)
|
2024-01-29 16:04:25 -03:00
|
|
|
end
|
|
|
|
|
2024-07-02 08:51:59 -07:00
|
|
|
plugin.add_to_serializer(:topic_view, :summarizable) do
|
2024-07-04 10:48:18 +10:00
|
|
|
scope.can_see_summary?(object.topic)
|
2024-01-29 16:04:25 -03:00
|
|
|
end
|
|
|
|
|
2024-07-02 08:51:59 -07:00
|
|
|
plugin.add_to_serializer(:web_hook_topic_view, :summarizable) do
|
2024-07-04 10:48:18 +10:00
|
|
|
scope.can_see_summary?(object.topic)
|
2023-06-27 12:26:33 -03:00
|
|
|
end
|
2023-04-04 11:24:09 -03:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|