aboutsummaryrefslogtreecommitdiff
path: root/src/app
diff options
context:
space:
mode:
Diffstat (limited to 'src/app')
-rw-r--r--src/app/init.rs33
-rw-r--r--src/app/llm.rs2
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)]
ArKa projects. All rights to me, and your next child right arm.