diff options
| author | sigoden <sigoden@gmail.com> | 2024-04-25 10:15:54 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-04-25 10:15:54 +0800 |
| commit | 4db9b309803796bc5f996d0b3713344eb44207ec (patch) | |
| tree | a0ba8f3a2da32e5392e22272c641e3939de49be6 /src/client/message.rs | |
| parent | 8dacea4deb0fe67c0cdbe15bd47e6e50c1dd12a1 (diff) | |
| download | aichat-4db9b309803796bc5f996d0b3713344eb44207ec.tar.gz | |
refactor: rewrite list models of all clients (#436)
Diffstat (limited to 'src/client/message.rs')
| -rw-r--r-- | src/client/message.rs | 21 |
1 files changed, 21 insertions, 0 deletions
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<Message>) { + 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<Message>) -> Option<String> { + 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::*; |
