Spaces:
Running
Running
Update index.html
Browse files- index.html +6 -1
index.html
CHANGED
|
@@ -317,6 +317,8 @@ details.think div{white-space:pre-wrap;border-left:2px solid var(--border);paddi
|
|
| 317 |
<div class="stat-row"><span>Tokens generados</span><b id="st-tokens">0</b></div>
|
| 318 |
<div class="stat-row"><span>Velocidad (últ. / media)</span><b id="st-speed">—</b></div>
|
| 319 |
<div class="stat-row"><span>Tiempo de debate</span><b id="st-time">0:00</b></div>
|
|
|
|
|
|
|
| 320 |
<div class="stat-row"><span>Motor</span><b id="st-engine">—</b></div>
|
| 321 |
<div class="stat-row"><span>Almacenamiento</span><b id="st-mem">—</b></div>
|
| 322 |
<h3>Participación</h3>
|
|
@@ -550,7 +552,7 @@ let agents = (() => {
|
|
| 550 |
return (Array.isArray(a) && a.length >= 2 && a.every(x => x && x.name && x.system)) ? a : DEFAULT_AGENTS.slice();
|
| 551 |
})();
|
| 552 |
let mode = 'adversarial';
|
| 553 |
-
let wllama = null, running = false, stopRequested = false, modelLoadMs = 0;
|
| 554 |
let topic = '';
|
| 555 |
let transcript = []; // {name, role, text, round, tokens, ms, isUser, kind}
|
| 556 |
let resume = { round: 1, stepIdx: 0, steps: null };
|
|
@@ -761,6 +763,7 @@ async function loadModel(repo, file) {
|
|
| 761 |
n_threads: Math.max(1, Math.min(8, navigator.hardwareConcurrency || 4)),
|
| 762 |
progressCallback: ({ loaded, total }) => {
|
| 763 |
if (total > 0) {
|
|
|
|
| 764 |
const pct = Math.round((loaded / total) * 100);
|
| 765 |
setProgress(pct);
|
| 766 |
setStatus(`Descargando\u2026 ${pct}% (${(loaded / 1048576).toFixed(0)} MB)`);
|
|
@@ -768,6 +771,7 @@ async function loadModel(repo, file) {
|
|
| 768 |
},
|
| 769 |
});
|
| 770 |
modelLoadMs = performance.now() - t0;
|
|
|
|
| 771 |
setProgress(100);
|
| 772 |
setPill('ready', file.replace('.gguf', '').slice(0, 34));
|
| 773 |
setStatus(`Modelo listo en ${(modelLoadMs / 1000).toFixed(0)} s. ${agents.length} agentes preparados.`);
|
|
@@ -854,6 +858,7 @@ function bumpStats(name, tokens, ms) {
|
|
| 854 |
const last = stats.speeds[stats.speeds.length - 1];
|
| 855 |
const avg = stats.speeds.length ? stats.speeds.reduce((a, b) => a + b, 0) / stats.speeds.length : 0;
|
| 856 |
$('st-speed').textContent = stats.speeds.length ? `${last.toFixed(1)} / ${avg.toFixed(1)} tok/s` : '—';
|
|
|
|
| 857 |
const maxTok = Math.max(1, ...Object.values(stats.tokens));
|
| 858 |
const box = $('st-agents');
|
| 859 |
box.innerHTML = '';
|
|
|
|
| 317 |
<div class="stat-row"><span>Tokens generados</span><b id="st-tokens">0</b></div>
|
| 318 |
<div class="stat-row"><span>Velocidad (últ. / media)</span><b id="st-speed">—</b></div>
|
| 319 |
<div class="stat-row"><span>Tiempo de debate</span><b id="st-time">0:00</b></div>
|
| 320 |
+
<div class="stat-row"><span>Memoria modelo (est.)</span><b id="st-mem">—</b></div>
|
| 321 |
+
<div class="stat-row"><span>Contexto usado (est.)</span><b id="st-ctx">—</b></div>
|
| 322 |
<div class="stat-row"><span>Motor</span><b id="st-engine">—</b></div>
|
| 323 |
<div class="stat-row"><span>Almacenamiento</span><b id="st-mem">—</b></div>
|
| 324 |
<h3>Participación</h3>
|
|
|
|
| 552 |
return (Array.isArray(a) && a.length >= 2 && a.every(x => x && x.name && x.system)) ? a : DEFAULT_AGENTS.slice();
|
| 553 |
})();
|
| 554 |
let mode = 'adversarial';
|
| 555 |
+
let wllama = null, running = false, stopRequested = false, modelLoadMs = 0, modelBytes = 0;
|
| 556 |
let topic = '';
|
| 557 |
let transcript = []; // {name, role, text, round, tokens, ms, isUser, kind}
|
| 558 |
let resume = { round: 1, stepIdx: 0, steps: null };
|
|
|
|
| 763 |
n_threads: Math.max(1, Math.min(8, navigator.hardwareConcurrency || 4)),
|
| 764 |
progressCallback: ({ loaded, total }) => {
|
| 765 |
if (total > 0) {
|
| 766 |
+
modelBytes = total;
|
| 767 |
const pct = Math.round((loaded / total) * 100);
|
| 768 |
setProgress(pct);
|
| 769 |
setStatus(`Descargando\u2026 ${pct}% (${(loaded / 1048576).toFixed(0)} MB)`);
|
|
|
|
| 771 |
},
|
| 772 |
});
|
| 773 |
modelLoadMs = performance.now() - t0;
|
| 774 |
+
$('st-mem').textContent = modelBytes ? (modelBytes / 1048576).toFixed(0) + ' MB' : '—';
|
| 775 |
setProgress(100);
|
| 776 |
setPill('ready', file.replace('.gguf', '').slice(0, 34));
|
| 777 |
setStatus(`Modelo listo en ${(modelLoadMs / 1000).toFixed(0)} s. ${agents.length} agentes preparados.`);
|
|
|
|
| 858 |
const last = stats.speeds[stats.speeds.length - 1];
|
| 859 |
const avg = stats.speeds.length ? stats.speeds.reduce((a, b) => a + b, 0) / stats.speeds.length : 0;
|
| 860 |
$('st-speed').textContent = stats.speeds.length ? `${last.toFixed(1)} / ${avg.toFixed(1)} tok/s` : '—';
|
| 861 |
+
$('st-ctx').textContent = '~' + Math.round(transcriptText(1000000).length / 4) + ' / ' + CONFIG.nCtx + ' tok';
|
| 862 |
const maxTok = Math.max(1, ...Object.values(stats.tokens));
|
| 863 |
const box = $('st-agents');
|
| 864 |
box.innerHTML = '';
|