use anyhow::Result;
#[derive(Debug, Clone)]
pub struct ChatMessage {
pub role: String,
pub content: String,
}
pub struct ChatSession {
messages: Vec<ChatMessage>,
}
impl ChatSession {
pub fn new() -> Self {
Self {
messages: Vec::new(),
}
}
pub fn add_message(&mut self, role: String, content: String) {
self.messages.push(ChatMessage { role, content });
}
pub fn messages(&self) -> &[ChatMessage] {
&self.messages
}
pub fn clear(&mut self) {
self.messages.clear();
}
}
pub fn init_chat() -> Result<ChatSession> {
Ok(ChatSession::new())
}