From 5a70183429595deb1007b25a759c0d20f120676d Mon Sep 17 00:00:00 2001 From: Shivam Mishra Date: Tue, 14 Nov 2023 17:22:08 +0530 Subject: [PATCH] feat: more exclusion conditions for label suggestions --- .../integrations/openai_processor_service.rb | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/enterprise/lib/enterprise/integrations/openai_processor_service.rb b/enterprise/lib/enterprise/integrations/openai_processor_service.rb index f528135d8..1845488db 100644 --- a/enterprise/lib/enterprise/integrations/openai_processor_service.rb +++ b/enterprise/lib/enterprise/integrations/openai_processor_service.rb @@ -19,13 +19,7 @@ module Enterprise::Integrations::OpenaiProcessorService private def labels_with_messages - conversation = find_conversation - - # return nil if conversation is not present - return nil if conversation.nil? - - # return nil if conversation has less than 3 incoming messages - return nil if conversation.messages.incoming.count < 3 + return nil unless valid_conversation? labels = hook.account.labels.pluck(:title).join(', ') character_count = labels.length @@ -38,6 +32,20 @@ module Enterprise::Integrations::OpenaiProcessorService "Messages:\n#{messages}\nLabels:\n#{labels}" end + def valid_conversation? + conversation = find_conversation + return false if conversation.nil? + return false if conversation.messages.incoming.count < 3 + + # Think Mark think, at this point the conversation is beyond saving + return false if conversation.messages.count > 100 + + # if there are more than 20 messages, only trigger this if the last message is from the client + return false if conversation.messages.count > 20 && !conversation.messages.last.incoming? + + true + end + def summarize_body { model: self.class::GPT_MODEL, @@ -53,7 +61,7 @@ module Enterprise::Integrations::OpenaiProcessorService return unless label_suggestions_enabled? content = labels_with_messages - return nil if content.blank? + return value_from_cache if content.blank? { model: self.class::GPT_MODEL,