2025-04-14 08:18:50 -07:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
module Jobs
|
|
|
|
class StreamComposerHelper < ::Jobs::Base
|
|
|
|
sidekiq_options retry: false
|
|
|
|
|
|
|
|
def execute(args)
|
|
|
|
return unless args[:prompt]
|
|
|
|
return unless user = User.find_by(id: args[:user_id])
|
|
|
|
return unless args[:text]
|
2025-05-23 16:23:06 +10:00
|
|
|
return unless args[:client_id]
|
2025-07-01 18:02:16 +10:00
|
|
|
return unless args[:progress_channel]
|
2025-04-14 08:18:50 -07:00
|
|
|
|
2025-05-27 10:37:30 -03:00
|
|
|
helper_mode = args[:prompt]
|
2025-04-14 08:18:50 -07:00
|
|
|
|
|
|
|
DiscourseAi::AiHelper::Assistant.new.stream_prompt(
|
2025-05-27 10:37:30 -03:00
|
|
|
helper_mode,
|
2025-04-14 08:18:50 -07:00
|
|
|
args[:text],
|
|
|
|
user,
|
2025-07-01 18:02:16 +10:00
|
|
|
args[:progress_channel],
|
2025-04-14 08:18:50 -07:00
|
|
|
force_default_locale: args[:force_default_locale],
|
2025-05-23 16:23:06 +10:00
|
|
|
client_id: args[:client_id],
|
2025-05-27 10:37:30 -03:00
|
|
|
custom_prompt: args[:custom_prompt],
|
2025-04-14 08:18:50 -07:00
|
|
|
)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|