Files
leadchat/app/services/llm_formatter/conversation_llm_formatter.rb

33 lines
891 B
Ruby

class LlmFormatter::ConversationLlmFormatter < LlmFormatter::DefaultLlmFormatter
def format
sections = []
sections << "Conversation ID: ##{@record.display_id}"
sections << "Channel: #{@record.inbox.channel.name}"
sections << 'Message History:'
sections << if @record.messages.any?
build_messages
else
'No messages in this conversation'
end
sections.join("\n")
end
private
def build_messages
return "No messages in this conversation\n" if @record.messages.empty?
message_text = ''
@record.messages.chat.order(created_at: :asc).each do |message|
message_text << format_message(message)
end
message_text
end
def format_message(message)
sender = message.message_type == 'incoming' ? 'User' : 'Support agent'
"#{sender}: #{message.content}\n"
end
end