GetLastUserMessages returns up to n most recent user messages, ordered from oldest to newest. Returns nil if n <= 0.
(n int)
| 667 | // GetLastUserMessages returns up to n most recent user messages, ordered from oldest to newest. |
| 668 | // Returns nil if n <= 0. |
| 669 | func (s *Session) GetLastUserMessages(n int) []string { |
| 670 | if n <= 0 { |
| 671 | return nil |
| 672 | } |
| 673 | messages := s.GetAllMessages() |
| 674 | var userMessages []string |
| 675 | for i := range messages { |
| 676 | if messages[i].Message.Role == chat.MessageRoleUser { |
| 677 | content := strings.TrimSpace(messages[i].Message.Content) |
| 678 | if content != "" { |
| 679 | userMessages = append(userMessages, content) |
| 680 | } |
| 681 | } |
| 682 | } |
| 683 | if len(userMessages) <= n { |
| 684 | return userMessages |
| 685 | } |
| 686 | return userMessages[len(userMessages)-n:] |
| 687 | } |
| 688 | |
| 689 | func (s *Session) getLastMessageContentByRole(role chat.MessageRole) string { |
| 690 | messages := s.GetAllMessages() |