Cargo.toml: [dependencies] warp = "0.3" tokio = { version = "1", features = ["full"] } serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" uuid = { version = "1.3", features = ["v4"] } chrono = { version = "0.4", features = ["serde"] } smartcore = "0.5" use std::sync::{Arc, Mutex}; use warp::Filter; use serde::{Deserialize, Serialize}; use chrono::{DateTime, Utc}; use uuid::Uuid; use smartcore::text::bag_of_words::BagOfWords; use smartcore::naive_bayes::MultinomialNB; use smartcore::linalg::basic::matrix::DenseMatrix; #[derive(Deserialize)] struct NewTask { description: String, } #[derive(Serialize, Clone)] struct Task { id: String, description: String, created_at: DateTime<Utc>, category: String, } type TaskDB = Arc<Mutex<Vec<Task>>>; fn train_model() -> (BagOfWords, MultinomialNB<f64>) { let training_data = vec![ ("work on project", "Work"), ("meeting with team", "Work"), ("buy groceries", "Personal"), ("call mom", "Personal"), ("urgent deadline", "Urgent"), ("impo