diff --git a/templates/index.html b/templates/index.html
index 2dcec0a..a03815d 100644
--- a/templates/index.html
+++ b/templates/index.html
@@ -1340,6 +1340,7 @@ async function sendMessage() {
let searchTriggered = false;
const ttrStart = performance.now();
let ttr = 0;
+ let tokenCount = 0;
try {
abortController = new AbortController();
let uploadContextId = null;
@@ -1393,18 +1394,18 @@ async function sendMessage() {
}
if (data.searching) { textEl.innerHTML = fullText ? renderMarkdown(fullText) + '
' : ''; searchTriggered = true; }
if (data.search_results) { textEl.innerHTML = '🔍 Found ' + data.search_results + ' results...
'; fullText = ''; firstToken = true; }
- if (data.token) { if (firstToken) { textEl.innerHTML = ''; firstToken = false; ttr = performance.now() - ttrStart; } fullText += data.token; textEl.innerHTML = renderMarkdown(fullText); scrollToBottom(); }
+ if (data.token) { if (firstToken) { textEl.innerHTML = ''; firstToken = false; ttr = performance.now() - ttrStart; tokenCount = 0; } fullText += data.token; tokenCount++; textEl.innerHTML = renderMarkdown(fullText); scrollToBottom(); }
if (data.done) {
const roleLabel = assistantDiv.querySelector('.role-label');
if (data.searched && roleLabel) roleLabel.innerHTML += '🔍 web';
if (typeof data.perplexity === 'number' && roleLabel) { const ppl = data.perplexity; roleLabel.innerHTML += `ppl: ${ppl.toFixed(1)}`; }
- if (typeof data.tokens === 'number' && data.tokens > 0 && roleLabel) roleLabel.innerHTML += `tok: ${data.tokens}`;
if (typeof data.tokens_per_sec === 'number' && data.tokens_per_sec > 0 && roleLabel) roleLabel.innerHTML += `${data.tokens_per_sec.toFixed(1)} t/s`;
if (roleLabel && ttr > 0) {
const ttrSec = ttr / 1000;
const ttrClass = data.searched ? 'search' : (ttrSec <= 2 ? 'low' : ttrSec < 11 ? 'medium' : 'high');
roleLabel.innerHTML += `ttr: ${ttrSec.toFixed(1)}s`;
}
+ if (tokenCount > 0 && roleLabel) roleLabel.innerHTML += `tok: ${tokenCount}`;
conversationHistory.push({ role: 'assistant', content: fullText });
updateTokenThermometer();
addCopyButtons(assistantDiv);