aboutsummaryrefslogtreecommitdiff
path: root/src/app/init.rs
diff options
context:
space:
mode:
authorOxbian <oxbian@mailbox.org>2025-05-18 12:19:33 -0400
committerOxbian <oxbian@mailbox.org>2025-05-18 12:19:33 -0400
commitea5fe19ad751fd6fa686e502a5cf7f26a78668e9 (patch)
treecd005f10acc256613ef5a9b88cf36733659ea57f /src/app/init.rs
parentfecb211130ec487c7c617d28419c6d0097f19783 (diff)
downloadNAI-main.tar.gz
NAI-main.zip
feat: refactor chat, resume into modules + color in UImain
Diffstat (limited to 'src/app/init.rs')
-rw-r--r--src/app/init.rs23
1 files changed, 7 insertions, 16 deletions
diff --git a/src/app/init.rs b/src/app/init.rs
index 0930319..f2b1ee3 100644
--- a/src/app/init.rs
+++ b/src/app/init.rs
@@ -1,5 +1,5 @@
use crate::app::llm::{Message, MessageType, LLM};
-use crate::app::modules::wikipedia::ask_wiki;
+use crate::app::modules::{wikipedia, resume, chat, code};
use crate::helper::init::warn;
use uuid::Uuid;
use tokio::runtime::Builder;
@@ -8,23 +8,15 @@ pub struct App {
pub messages: Vec<Message>, // History of recorded message
pub conv_id: Uuid, // ID for retrieving and saving the history of messag
categorize_llm: LLM,
- chat_llm: LLM, // Configuration for the LLM that chat with you
- resume_llm: LLM, // Configuration for the LLM that resume conversation
}
impl App {
pub fn new() -> App {
- let categorize_llm = LLM::new("config/categorize-LLM.json");
App {
- messages: vec![Message::new(
- MessageType::SYSTEM,
- categorize_llm.system_prompt.clone(),
- )],
+ messages: Vec::new(),
conv_id: Uuid::new_v4(),
- categorize_llm,
- chat_llm: LLM::new("config/chat-LLM.json"),
- resume_llm: LLM::new("config/resume-LLM.json"),
+ categorize_llm: LLM::new("config/categorize-LLM.json"),
}
}
@@ -47,7 +39,7 @@ impl App {
match result {
Ok(msg) => {
- let categorie = msg[0]["function"]["arguments"]["category"].clone();
+ let categorie = msg[0]["function"]["arguments"]["category_choice"].clone();
self.ask(&categorie.to_string().replace("\"", ""));
},
Err(e) => self.append_message(e.to_string(), MessageType::ASSISTANT),
@@ -62,11 +54,11 @@ impl App {
let result = runtime.block_on(async {
if mode == "resume" {
- self.resume_llm.ask(&self.messages).await
+ resume::resume_conv(self.messages.clone()).await
} else if mode == "wikipedia" {
- ask_wiki(&self.messages).await
+ wikipedia::ask_wiki(&self.messages).await
} else {
- self.chat_llm.ask(&self.messages).await
+ chat::ask_chat(self.messages.clone()).await
}
});
@@ -82,7 +74,6 @@ impl App {
}
pub fn resume_conv(&mut self) {
- self.append_message(self.resume_llm.system_prompt.to_string(), MessageType::USER);
self.ask("resume");
}
}
ArKa projects. All rights to me, and your next child right arm.