aboutsummaryrefslogtreecommitdiff
path: root/src/app.rs
diff options
context:
space:
mode:
authorOxbian <oxbian@mailbox.org>2025-02-20 13:55:52 -0500
committerOxbian <oxbian@mailbox.org>2025-02-20 13:55:52 -0500
commit3dfa9363d2ef0eb217fb534c30317930a72b519e (patch)
tree0bef672952a40b24a5dd3a1cf08913b5b34ba498 /src/app.rs
parent0d4bbf7a60012b459be5dfe3077055c8e25bba02 (diff)
downloadNAI-3dfa9363d2ef0eb217fb534c30317930a72b519e.tar.gz
NAI-3dfa9363d2ef0eb217fb534c30317930a72b519e.zip
feat: input scrollbar + structuring the project
Diffstat (limited to 'src/app.rs')
-rw-r--r--src/app.rs74
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(())
- }
-}
ArKa projects. All rights to me, and your next child right arm.