use candle_core::{Device, Tensor, DType}; use candle_nn::VarBuilder; use candle_transformers::models::phi3::{Config as Phi3Config, Model as Phi3Model}; use wasm_bindgen::JsCast; use std::cell::RefCell; use std::rc::Rc; use web_sys::WebSocket; use crate::storage; macro_rules! console_log { ($($t:tt)*) => (web_sys::console::log_1(&format_args!($($t)*).to_string().into())) } const MODEL_URL: &str = "https://huggingface.co/microsoft/Phi-3-mini-4k-instruct/resolve/main/model.safetensors.index.json"; const TOKENIZER_URL: &str = "https://huggingface.co/microsoft/Phi-3-mini-4k-instruct/resolve/main/tokenizer.json"; // Phi-3 Mini on iso (7.6 GB) — käytetään kvantisoidumpaa versiota myöhemmin // Tällä hetkellä: placeholder joka raportoi koon ja jättää inferenssin väliin pub async fn run_phi3_inference(prompt: String, ws: Rc>) { console_log!("[Phi-3] Phi-3 Mini 3.8B on liian suuri selaimessa ajettavaksi (~7.6 GB)."); console_log!("[Phi-3] Käytä SmolLM 135M tai Qwen2.5 0.5B selaininferenssiin."); console_log!("[Phi-3] Phi-3 tuetaan native-node:lla (Docker + GPU)."); let done = serde_json::json!({ "type": "llm_done", "prompt": prompt, "model": "Phi-3-Mini (ei tuettu selaimessa)", "response": "Phi-3 Mini 3.8B on liian suuri selaimessa ajettavaksi. Käytä SmolLM 135M tai Qwen2.5 0.5B.", "tokens_generated": 0, "duration_ms": 0, "tokens_per_sec": 0, "load_time_ms": 0, }); let _ = ws.borrow().send_with_str(&done.to_string()); }