diff --git a/network-poc/node/src/qwen_coder.rs b/network-poc/node/src/qwen_coder.rs index 579a0bb..8e2c85a 100644 --- a/network-poc/node/src/qwen_coder.rs +++ b/network-poc/node/src/qwen_coder.rs @@ -258,13 +258,13 @@ pub async fn run_coder_inference(prompt: String, ws: Rc>, use if let Ok(json) = serde_json::from_str::(&prompt) { let p = json.get("prompt").and_then(|v| v.as_str()).unwrap_or(&prompt).to_string(); let s = json.get("system").and_then(|v| v.as_str()).unwrap_or(default_system).to_string(); - let m = json.get("max_tokens").and_then(|v| v.as_u64()).unwrap_or(128) as usize; + let m = json.get("max_tokens").and_then(|v| v.as_u64()).unwrap_or(256) as usize; (p, s, m) } else { - (prompt.clone(), default_system.to_string(), 128) + (prompt.clone(), default_system.to_string(), 256) } } else { - (prompt.clone(), default_system.to_string(), 128) + (prompt.clone(), default_system.to_string(), 256) }; // Prefill: aloitetaan vastaus ```-koodiblokkilla, jolloin malli jatkaa suoraan koodilla diff --git a/network-poc/static/index.html b/network-poc/static/index.html index c9e3ead..bd781dd 100644 --- a/network-poc/static/index.html +++ b/network-poc/static/index.html @@ -1849,14 +1849,20 @@ } if (sub === 'load') { + const size = parts[2]; // "3b" tai tyhjä (oletus 0.5B) const btn = document.getElementById('agent-compute-btn'); - if (btn && btn.dataset.state === 'ready') { + if (size === '3b') { + coderSize = '3b'; + termLog(' Alustetaan 3B-laskentasolmua (~6.2 GB)...', '#d29922'); + } else if (btn && btn.dataset.state === 'ready') { termLog(' ✓ Kielimalli on jo ladattu ja valmis', '#3fb950'); + termLog(' Vinkki: kpn load 3b — lataa isompi 3B-malli', '#8b949e'); + return; } else { termLog(' Alustetaan laskentasolmua...', '#d29922'); - if (btn) btn.click(); // Käytetään samaa logiikkaa kuin napissa - else ensureCoderNode(); } + if (btn) btn.click(); + else ensureCoderNode(); return; } @@ -1905,7 +1911,9 @@ } // Jos käyttäjä syötti agentin nimen (esim. "coder"), vaihdetaan se oikeaksi tekoälymalliksi ("qwen-coder") - if (agentPrompts[model]) { + if (model === 'coder-3b') { + model = 'qwen-coder-3b'; + } else if (agentPrompts[model]) { model = agentPrompts[model].model; } @@ -1919,12 +1927,14 @@ // Tab-completion: ennustava komennonsyöttö sana kerrallaan const kpnCommands = { 'kpn': ['help', 'run', 'pipeline', 'load', 'status', 'models', 'hello', 'clear'], - 'kpn run': ['coder', 'manager', 'tester', 'qa', 'data', 'observer', 'qwen-coder', 'smollm-135m', 'qwen-05b', 'phi3-mini'], + 'kpn run': ['coder', 'coder-3b', 'manager', 'tester', 'qa', 'data', 'observer', 'qwen-coder', 'qwen-coder-3b', 'smollm-135m', 'qwen-05b', 'phi3-mini'], + 'kpn load': ['3b'], 'kpn pipeline': ['"'], }; // Esimerkkipromptit malleittain const kpnExamples = { 'kpn run coder': ['"hello world in python"', '"fibonacci in rust"', '"quicksort in javascript"'], + 'kpn run coder-3b': ['"binary search tree in rust"', '"REST API with Flask"', '"async web scraper in python"'], 'kpn run manager': ['"suunnittele REST API"', '"priorisoi tiimin tehtävät"'], 'kpn run tester': ['"testaa login-toiminto"'], 'kpn pipeline': ['"rakenna todo-sovellus"', '"tee laskin pythonilla"'],