feat: Differentiate bot and user in the summary (#12801)
While generating the summary, use the appropriate sender type for the message.
This commit is contained in:
@@ -39,7 +39,14 @@ class LlmFormatter::ConversationLlmFormatter < LlmFormatter::DefaultLlmFormatter
|
|||||||
end
|
end
|
||||||
|
|
||||||
def format_message(message)
|
def format_message(message)
|
||||||
sender = message.message_type == 'incoming' ? 'User' : 'Support agent'
|
sender = case message.sender_type
|
||||||
|
when 'User'
|
||||||
|
'Support Agent'
|
||||||
|
when 'Contact'
|
||||||
|
'User'
|
||||||
|
else
|
||||||
|
'Bot'
|
||||||
|
end
|
||||||
sender = "[Private Note] #{sender}" if message.private?
|
sender = "[Private Note] #{sender}" if message.private?
|
||||||
"#{sender}: #{message.content}\n"
|
"#{sender}: #{message.content}\n"
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -27,6 +27,13 @@ FactoryBot.define do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
trait :bot_message do
|
||||||
|
message_type { 'outgoing' }
|
||||||
|
after(:build) do |message|
|
||||||
|
message.sender = nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
after(:build) do |message|
|
after(:build) do |message|
|
||||||
message.sender ||= message.outgoing? ? create(:user, account: message.account) : create(:contact, account: message.account)
|
message.sender ||= message.outgoing? ? create(:user, account: message.account) : create(:contact, account: message.account)
|
||||||
message.inbox ||= message.conversation&.inbox || create(:inbox, account: message.account)
|
message.inbox ||= message.conversation&.inbox || create(:inbox, account: message.account)
|
||||||
|
|||||||
@@ -28,6 +28,14 @@ RSpec.describe LlmFormatter::ConversationLlmFormatter do
|
|||||||
content: 'Hello, I need help'
|
content: 'Hello, I need help'
|
||||||
)
|
)
|
||||||
|
|
||||||
|
create(
|
||||||
|
:message,
|
||||||
|
:bot_message,
|
||||||
|
conversation: conversation,
|
||||||
|
message_type: 'outgoing',
|
||||||
|
content: 'Thanks for reaching out, an agent will reach out to you soon'
|
||||||
|
)
|
||||||
|
|
||||||
create(
|
create(
|
||||||
:message,
|
:message,
|
||||||
conversation: conversation,
|
conversation: conversation,
|
||||||
@@ -40,7 +48,8 @@ RSpec.describe LlmFormatter::ConversationLlmFormatter do
|
|||||||
"Channel: #{conversation.inbox.channel.name}",
|
"Channel: #{conversation.inbox.channel.name}",
|
||||||
'Message History:',
|
'Message History:',
|
||||||
'User: Hello, I need help',
|
'User: Hello, I need help',
|
||||||
'Support agent: How can I assist you today?',
|
'Bot: Thanks for reaching out, an agent will reach out to you soon',
|
||||||
|
'Support Agent: How can I assist you today?',
|
||||||
''
|
''
|
||||||
].join("\n")
|
].join("\n")
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user