fix: removed unnecessary regenerate logic for sessions and use the same logic for all contexts; prevents a panic on empty message list
This commit is contained in:
@@ -227,6 +227,9 @@ pub fn patch_messages(messages: &mut Vec<Message>, model: &Model) {
|
||||
}
|
||||
|
||||
pub fn extract_system_message(messages: &mut Vec<Message>) -> Option<String> {
|
||||
if messages.is_empty() {
|
||||
return None;
|
||||
}
|
||||
if messages[0].role.is_system() {
|
||||
let system_message = messages.remove(0);
|
||||
return Some(system_message.content.to_text());
|
||||
|
||||
@@ -628,15 +628,6 @@ impl Session {
|
||||
let mut messages = self.messages.clone();
|
||||
if input.continue_output().is_some() {
|
||||
return messages;
|
||||
} else if input.regenerate() {
|
||||
while let Some(last) = messages.last() {
|
||||
if !last.role.is_user() {
|
||||
messages.pop();
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
return messages;
|
||||
}
|
||||
let mut need_add_msg = true;
|
||||
let len = messages.len();
|
||||
|
||||
Reference in New Issue
Block a user