aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/app/init.rs33
-rw-r--r--src/app/llm.rs2
-rw-r--r--src/helper/init.rs2
-rw-r--r--src/main.rs1
-rw-r--r--src/ui/init.rs4
5 files changed, 19 insertions, 23 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)]
diff --git a/src/helper/init.rs b/src/helper/init.rs
index abee146..2e0537d 100644
--- a/src/helper/init.rs
+++ b/src/helper/init.rs
@@ -1,6 +1,6 @@
use chrono::prelude::*;
use std::fs::OpenOptions;
-use std::io::{self, Write};
+use std::io::Write;
pub fn warn(content: String) {
let mut file = OpenOptions::new()
diff --git a/src/main.rs b/src/main.rs
index 524a03a..7548f49 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -4,7 +4,6 @@ mod ui;
use crate::{app::init::App, ui::init::Ui};
use color_eyre::Result;
use ratatui;
-use tokio;
fn main() -> Result<()> {
// Setup terminal
diff --git a/src/ui/init.rs b/src/ui/init.rs
index 87b31b6..eadaf36 100644
--- a/src/ui/init.rs
+++ b/src/ui/init.rs
@@ -102,7 +102,9 @@ impl Ui {
"q".bold(),
" to exit, ".into(),
"e".bold(),
- " to start editing.".bold(),
+ " to start editing, ".into(),
+ "r".bold(),
+ " to resume the conversation.".into(),
],
Style::default(),
),
ArKa projects. All rights to me, and your next child right arm.