22 lines
613 B
Ruby
22 lines
613 B
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
module Jobs
|
||
|
class GenerateChatThreadTitle < ::Jobs::Base
|
||
|
sidekiq_options queue: "low"
|
||
|
|
||
|
def execute(args)
|
||
|
return unless SiteSetting.ai_helper_automatic_chat_thread_title
|
||
|
return if (thread_id = args[:thread_id]).blank?
|
||
|
|
||
|
thread = ::Chat::Thread.find_by_id(thread_id)
|
||
|
return if thread.nil? || thread.title.present?
|
||
|
|
||
|
title = DiscourseAi::AiHelper::ChatThreadTitler.new(thread).suggested_title
|
||
|
return if title.blank?
|
||
|
|
||
|
# TODO use a proper API that will make the new title update live
|
||
|
thread.update!(title: title)
|
||
|
end
|
||
|
end
|
||
|
end
|