Max tokens 128→256 + coder-3b malli agents-terminaaliin
- Oletustokenimäärä nostettu 256:een (monimutkaisemmat vastaukset mahtuvat) - kpn run coder-3b "..." käynnistää 3B-mallin (parempi koodinlaatu) - kpn load 3b lataa 3B-mallin (~6.2 GB) - Tab-completion tukee coder-3b + esimerkkipromptit Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -258,13 +258,13 @@ pub async fn run_coder_inference(prompt: String, ws: Rc<RefCell<WebSocket>>, use
|
|||||||
if let Ok(json) = serde_json::from_str::<serde_json::Value>(&prompt) {
|
if let Ok(json) = serde_json::from_str::<serde_json::Value>(&prompt) {
|
||||||
let p = json.get("prompt").and_then(|v| v.as_str()).unwrap_or(&prompt).to_string();
|
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 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)
|
(p, s, m)
|
||||||
} else {
|
} else {
|
||||||
(prompt.clone(), default_system.to_string(), 128)
|
(prompt.clone(), default_system.to_string(), 256)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
(prompt.clone(), default_system.to_string(), 128)
|
(prompt.clone(), default_system.to_string(), 256)
|
||||||
};
|
};
|
||||||
|
|
||||||
// Prefill: aloitetaan vastaus ```-koodiblokkilla, jolloin malli jatkaa suoraan koodilla
|
// Prefill: aloitetaan vastaus ```-koodiblokkilla, jolloin malli jatkaa suoraan koodilla
|
||||||
|
|||||||
@@ -1849,14 +1849,20 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (sub === 'load') {
|
if (sub === 'load') {
|
||||||
|
const size = parts[2]; // "3b" tai tyhjä (oletus 0.5B)
|
||||||
const btn = document.getElementById('agent-compute-btn');
|
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(' ✓ Kielimalli on jo ladattu ja valmis', '#3fb950');
|
||||||
|
termLog(' Vinkki: kpn load 3b — lataa isompi 3B-malli', '#8b949e');
|
||||||
|
return;
|
||||||
} else {
|
} else {
|
||||||
termLog(' Alustetaan laskentasolmua...', '#d29922');
|
termLog(' Alustetaan laskentasolmua...', '#d29922');
|
||||||
if (btn) btn.click(); // Käytetään samaa logiikkaa kuin napissa
|
|
||||||
else ensureCoderNode();
|
|
||||||
}
|
}
|
||||||
|
if (btn) btn.click();
|
||||||
|
else ensureCoderNode();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1905,7 +1911,9 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Jos käyttäjä syötti agentin nimen (esim. "coder"), vaihdetaan se oikeaksi tekoälymalliksi ("qwen-coder")
|
// 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;
|
model = agentPrompts[model].model;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1919,12 +1927,14 @@
|
|||||||
// Tab-completion: ennustava komennonsyöttö sana kerrallaan
|
// Tab-completion: ennustava komennonsyöttö sana kerrallaan
|
||||||
const kpnCommands = {
|
const kpnCommands = {
|
||||||
'kpn': ['help', 'run', 'pipeline', 'load', 'status', 'models', 'hello', 'clear'],
|
'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': ['"'],
|
'kpn pipeline': ['"'],
|
||||||
};
|
};
|
||||||
// Esimerkkipromptit malleittain
|
// Esimerkkipromptit malleittain
|
||||||
const kpnExamples = {
|
const kpnExamples = {
|
||||||
'kpn run coder': ['"hello world in python"', '"fibonacci in rust"', '"quicksort in javascript"'],
|
'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 manager': ['"suunnittele REST API"', '"priorisoi tiimin tehtävät"'],
|
||||||
'kpn run tester': ['"testaa login-toiminto"'],
|
'kpn run tester': ['"testaa login-toiminto"'],
|
||||||
'kpn pipeline': ['"rakenna todo-sovellus"', '"tee laskin pythonilla"'],
|
'kpn pipeline': ['"rakenna todo-sovellus"', '"tee laskin pythonilla"'],
|
||||||
|
|||||||
Reference in New Issue
Block a user