diff options
Diffstat (limited to 'src/app')
-rw-r--r-- | src/app/init.rs | 33 | ||||
-rw-r--r-- | src/app/llm.rs | 2 |
2 files changed, 15 insertions, 20 deletions
diff --git a/src/app/init.rs b/src/app/init.rs index f62b2d0..201e79e 100644 --- a/src/app/init.rs +++ b/src/app/init.rs @@ -1,7 +1,7 @@ use crate::app::llm::{Message, MessageType, LLM}; use crate::helper::init::warn; use uuid::Uuid; -use tokio; +use tokio::runtime::Builder; pub struct App { pub messages: Vec<Message>, // History of recorded message @@ -30,14 +30,16 @@ impl App { self.messages.push(message); } - pub fn send_message(&mut self, content: String) { - self.append_message(content, MessageType::USER); - - let runtime = tokio::runtime::Builder::new_current_thread() + fn ask(&mut self, mode: &str) { + let runtime = Builder::new_current_thread() .enable_all() .build().unwrap(); let result = runtime.block_on(async { - self.chat_llm.ask(&self.messages).await + if mode == "resume" { + self.resume_llm.ask(&self.messages).await + } else { + self.chat_llm.ask(&self.messages).await + } }); match result { @@ -46,20 +48,13 @@ impl App { } } + pub fn send_message(&mut self, content: String) { + self.append_message(content, MessageType::USER); + self.ask("chat"); + } + pub fn resume_conv(&mut self) { self.append_message(self.resume_llm.system_prompt.to_string(), MessageType::USER); - - let runtime = tokio::runtime::Builder::new_current_thread() - .enable_all() - .build().unwrap(); - - let result = runtime.block_on(async { - self.resume_llm.ask(&self.messages).await - }); - - match result { - Ok(msg) => self.append_message(msg, MessageType::ASSISTANT), - Err(e) => self.append_message(e.to_string(), MessageType::ASSISTANT), - } + self.ask("resume"); } } diff --git a/src/app/llm.rs b/src/app/llm.rs index 59e045b..9fc1b3a 100644 --- a/src/app/llm.rs +++ b/src/app/llm.rs @@ -3,7 +3,7 @@ use reqwest::{header::CONTENT_TYPE, Client}; use serde::{Deserialize, Serialize}; use serde_json::Value; use std::fmt; -use std::fs::{OpenOptions, create_dir_all}; +use std::fs::{self, OpenOptions, create_dir_all}; use std::io::Write; #[derive(Deserialize, Debug)] |