From 4db9b309803796bc5f996d0b3713344eb44207ec Mon Sep 17 00:00:00 2001 From: sigoden Date: Thu, 25 Apr 2024 10:15:54 +0800 Subject: refactor: rewrite list models of all clients (#436) --- src/client/message.rs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'src/client/message.rs') diff --git a/src/client/message.rs b/src/client/message.rs index f9978c5..9aff64a 100644 --- a/src/client/message.rs +++ b/src/client/message.rs @@ -114,6 +114,27 @@ pub struct ImageUrl { pub url: String, } +pub fn patch_system_message(messages: &mut Vec) { + if messages[0].role.is_system() { + let system_message = messages.remove(0); + if let (Some(message), MessageContent::Text(system_text)) = + (messages.get_mut(0), system_message.content) + { + if let MessageContent::Text(text) = message.content.clone() { + message.content = MessageContent::Text(format!("{}\n\n{}", system_text, text)) + } + } + } +} + +pub fn extract_sytem_message(messages: &mut Vec) -> Option { + if messages[0].role.is_system() { + let system_message = messages.remove(0); + return Some(system_message.content.to_text()); + } + None +} + #[cfg(test)] mod tests { use super::*; -- cgit v1.2.3