mirror of
https://github.com/discourse/discourse-ai.git
synced 2025-06-30 11:32:18 +00:00
We're seeing an aggressive number of translations being enqueued for a single post and locale. Historically, we trigger translation on `cooked` not `raw`, but that has changed a while back. ``` # from AiApiAuditLog, the same post is getting translated to the same locale within a few secs of each other zh_CN - 2025-06-17 13:02:31 UTC zh_CN - 2025-06-17 13:02:34 UTC zh_CN - 2025-06-17 13:02:35 UTC zh_CN - 2025-06-17 13:02:36 UTC zh_CN - 2025-06-17 13:02:38 UTC zh_CN - 2025-06-17 13:02:39 UTC zh_CN - 2025-06-17 13:02:40 UTC zh_CN - 2025-06-17 13:02:40 UTC zh_CN - 2025-06-17 13:02:43 UTC zh_CN - 2025-06-17 13:02:44 UTC ``` This PR prevents this from happening.
28 lines
856 B
Ruby
28 lines
856 B
Ruby
# frozen_string_literal: true
|
|
|
|
module DiscourseAi
|
|
module Translation
|
|
class EntryPoint
|
|
def inject_into(plugin)
|
|
plugin.on(:post_created) do |post|
|
|
if SiteSetting.discourse_ai_enabled && SiteSetting.ai_translation_enabled
|
|
Jobs.enqueue(:detect_translate_post, post_id: post.id)
|
|
end
|
|
end
|
|
|
|
plugin.on(:topic_created) do |topic|
|
|
if SiteSetting.discourse_ai_enabled && SiteSetting.ai_translation_enabled
|
|
Jobs.enqueue(:detect_translate_topic, topic_id: topic.id)
|
|
end
|
|
end
|
|
|
|
plugin.on(:post_edited) do |post, topic_changed|
|
|
if SiteSetting.discourse_ai_enabled && SiteSetting.ai_translation_enabled && topic_changed
|
|
Jobs.enqueue(:detect_translate_topic, topic_id: post.topic_id)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|