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> {
|
pub fn extract_system_message(messages: &mut Vec<Message>) -> Option<String> {
|
||||||
|
if messages.is_empty() {
|
||||||
|
return None;
|
||||||
|
}
|
||||||
if messages[0].role.is_system() {
|
if messages[0].role.is_system() {
|
||||||
let system_message = messages.remove(0);
|
let system_message = messages.remove(0);
|
||||||
return Some(system_message.content.to_text());
|
return Some(system_message.content.to_text());
|
||||||
|
|||||||
@@ -628,15 +628,6 @@ impl Session {
|
|||||||
let mut messages = self.messages.clone();
|
let mut messages = self.messages.clone();
|
||||||
if input.continue_output().is_some() {
|
if input.continue_output().is_some() {
|
||||||
return messages;
|
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 mut need_add_msg = true;
|
||||||
let len = messages.len();
|
let len = messages.len();
|
||||||
|
|||||||
Reference in New Issue
Block a user