feat: more exclusion conditions for label suggestions

This commit is contained in:
Shivam Mishra
2023-11-14 17:22:08 +05:30
parent 1c35774eed
commit 5a70183429
@@ -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,