kpnRun lähettää suoraan hubille, Wasm-fallback vain 503:lla
Ei enää odoteta Wasm-latausta ennen API-kutsua. Jos natiivisolmu on hubissa, vastaus tulee suoraan. Jos hub palauttaa 503 (ei solmua), käynnistetään Wasm-fallback ja yritetään uudelleen. Tämä korjaa tilanteen jossa native-node on jo käynnissä mutta selain yritti silti ladata Wasmia ensin. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -207,17 +207,9 @@ import AgentBar from "../components/AgentBar.astro";
|
|||||||
termPanel.scrollTop = termPanel.scrollHeight;
|
termPanel.scrollTop = termPanel.scrollHeight;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// Varmistetaan solmu
|
// Ei odotetaan Wasmia — lähetetään suoraan hubille.
|
||||||
if (!wasmNodeStarted) {
|
// Jos hub löytää natiivisolmun, vastaus tulee nopeasti.
|
||||||
statusDiv.innerHTML = ' <span style="color:#d29922">→ Käynnistetään laskentasolmua...</span>';
|
// Jos 503, käynnistetään Wasm-fallback.
|
||||||
await ensureNode();
|
|
||||||
// Odotetaan kunnes malli on latautunut tai 60s
|
|
||||||
for (let i = 0; i < 120 && !llmReady; i++) await new Promise(r => setTimeout(r, 500));
|
|
||||||
if (!llmReady) {
|
|
||||||
statusDiv.innerHTML = ' <span style="color:#f85149">✗ Mallin lataus aikakatkaistiin</span>';
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!silent) {
|
if (!silent) {
|
||||||
const streamDiv = document.createElement('div');
|
const streamDiv = document.createElement('div');
|
||||||
@@ -236,6 +228,15 @@ import AgentBar from "../components/AgentBar.astro";
|
|||||||
body: JSON.stringify({ model, prompt, task_id: taskId }),
|
body: JSON.stringify({ model, prompt, task_id: taskId }),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (res.status === 503 && !wasmNodeStarted) {
|
||||||
|
// Ei natiivisolmua — käynnistetään Wasm-fallback
|
||||||
|
statusDiv.innerHTML = ' <span style="color:#d29922">→ Ei natiivisolmua — käynnistetään selainlaskenta...</span>';
|
||||||
|
await ensureNode();
|
||||||
|
for (let i = 0; i < 120 && !llmReady; i++) await new Promise(r => setTimeout(r, 500));
|
||||||
|
if (!llmReady) { statusDiv.innerHTML = ' <span style="color:#f85149">✗ Mallin lataus aikakatkaistiin</span>'; return null; }
|
||||||
|
// Yritetään uudelleen
|
||||||
|
return kpnRun(model, prompt, silent);
|
||||||
|
}
|
||||||
if (!res.ok) {
|
if (!res.ok) {
|
||||||
const err = await res.text().catch(() => res.statusText);
|
const err = await res.text().catch(() => res.statusText);
|
||||||
statusDiv.innerHTML = ` <span style="color:#f85149">✗ ${esc(err)}</span>`;
|
statusDiv.innerHTML = ` <span style="color:#f85149">✗ ${esc(err)}</span>`;
|
||||||
|
|||||||
Reference in New Issue
Block a user