diff options
author | Oxbian <oxbian@mailbox.org> | 2025-02-20 13:55:52 -0500 |
---|---|---|
committer | Oxbian <oxbian@mailbox.org> | 2025-02-20 13:55:52 -0500 |
commit | 3dfa9363d2ef0eb217fb534c30317930a72b519e (patch) | |
tree | 0bef672952a40b24a5dd3a1cf08913b5b34ba498 /src/app.rs | |
parent | 0d4bbf7a60012b459be5dfe3077055c8e25bba02 (diff) | |
download | NAI-3dfa9363d2ef0eb217fb534c30317930a72b519e.tar.gz NAI-3dfa9363d2ef0eb217fb534c30317930a72b519e.zip |
feat: input scrollbar + structuring the project
Diffstat (limited to 'src/app.rs')
-rw-r--r-- | src/app.rs | 74 |
1 files changed, 0 insertions, 74 deletions
diff --git a/src/app.rs b/src/app.rs deleted file mode 100644 index ff9f130..0000000 --- a/src/app.rs +++ /dev/null @@ -1,74 +0,0 @@ -use color_eyre::Result; -use reqwest; -use serde_json::Value; -use std::{collections::HashMap, fmt}; - -#[derive(Debug)] -pub struct App { - pub messages: Vec<Message>, // History of recorded messages -} - -#[derive(Debug)] -pub struct Message { - content: String, - msg_type: MessageType, -} - -impl fmt::Display for Message { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - match self.msg_type { - MessageType::Human => return write!(f, "You: {}", self.content), - MessageType::LLM => return write!(f, "Néo AI: {}", self.content), - } - } -} - -#[derive(Debug)] -pub enum MessageType { - Human, - LLM, -} - -impl App { - pub fn new() -> App { - App { - messages: Vec::new(), - } - } - - pub fn send_message(&mut self, content: String) -> Result<()> { - // POST: http://localhost:8080/completion {"prompt": "lorem ipsum"} - self.messages.push(Message { - content: content.clone(), - msg_type: MessageType::Human, - }); - - let client = reqwest::blocking::Client::new(); - let response = client - .post("http://localhost:8080/completion") - .json(&serde_json::json!({ - "prompt": &content, - "n_predict": 128, - })) - .send()?; - - if response.status().is_success() { - // Désérialiser la réponse JSON - let json_response: Value = response.json()?; - - // Accéder à la partie spécifique du JSON - if let Some(msg) = json_response["content"].as_str() { - self.messages.push(Message { - content: msg.to_string().clone(), - msg_type: MessageType::LLM, - }); - } else { - println!("Le champ 'data.id' est absent ou mal formaté."); - } - } else { - eprintln!("La requête a échoué avec le statut : {}", response.status()); - } - - Ok(()) - } -} |