feat: Differentiate bot and user in the summary (#12801)
Some checks failed
Frontend Lint & Test / test (push) Has been cancelled
Publish Chatwoot EE docker images / build (linux/amd64, ubuntu-latest) (push) Has been cancelled
Publish Chatwoot EE docker images / build (linux/arm64, ubuntu-22.04-arm) (push) Has been cancelled
Publish Chatwoot CE docker images / build (linux/amd64, ubuntu-latest) (push) Has been cancelled
Publish Chatwoot CE docker images / build (linux/arm64, ubuntu-22.04-arm) (push) Has been cancelled
Run Chatwoot CE spec / test (push) Has been cancelled
Publish Chatwoot EE docker images / merge (push) Has been cancelled
Publish Chatwoot CE docker images / merge (push) Has been cancelled

While generating the summary, use the appropriate sender type for the
message.
This commit is contained in:
Pranav 2025-11-05 11:42:21 -08:00 committed by GitHub
parent 72391f9c36
commit 5491ca2470
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 25 additions and 2 deletions

View File

@ -39,7 +39,14 @@ class LlmFormatter::ConversationLlmFormatter < LlmFormatter::DefaultLlmFormatter
end
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}: #{message.content}\n"
end

View File

@ -27,6 +27,13 @@ FactoryBot.define do
end
end
trait :bot_message do
message_type { 'outgoing' }
after(:build) do |message|
message.sender = nil
end
end
after(:build) do |message|
message.sender ||= message.outgoing? ? create(:user, account: message.account) : create(:contact, account: message.account)
message.inbox ||= message.conversation&.inbox || create(:inbox, account: message.account)

View File

@ -28,6 +28,14 @@ RSpec.describe LlmFormatter::ConversationLlmFormatter do
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(
:message,
conversation: conversation,
@ -40,7 +48,8 @@ RSpec.describe LlmFormatter::ConversationLlmFormatter do
"Channel: #{conversation.inbox.channel.name}",
'Message History:',
'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")