Spaces:
Running
Running
validate token count
Browse files- wasm-demo.js +21 -1
wasm-demo.js
CHANGED
|
@@ -227,24 +227,29 @@ $('tokenInput').addEventListener('input', () => {
|
|
| 227 |
$('estimatedTime').textContent = timeText;
|
| 228 |
|
| 229 |
if (tokenCount > TOKEN_LIMIT) {
|
| 230 |
-
$('encStatus').textContent = `⚠️ ${tokenCount}/${TOKEN_LIMIT} tokens -
|
| 231 |
$('encStatus').style.color = '#d32f2f';
|
|
|
|
| 232 |
} else if (tokenCount < 10) {
|
| 233 |
$('encStatus').textContent = `⚠️ ${tokenCount}/${TOKEN_LIMIT} tokens - low reliability`;
|
| 234 |
$('encStatus').style.color = '#f57c00';
|
|
|
|
| 235 |
} else {
|
| 236 |
$('encStatus').textContent = `${tokenCount}/${TOKEN_LIMIT} tokens`;
|
| 237 |
$('encStatus').style.color = '';
|
|
|
|
| 238 |
}
|
| 239 |
} catch (e) {
|
| 240 |
// Tokenizer might not be ready yet
|
| 241 |
$('encStatus').textContent = '';
|
| 242 |
currentTokenCount = 0;
|
|
|
|
| 243 |
}
|
| 244 |
} else {
|
| 245 |
$('encStatus').textContent = '';
|
| 246 |
$('encStatus').style.color = '';
|
| 247 |
currentTokenCount = 0;
|
|
|
|
| 248 |
}
|
| 249 |
});
|
| 250 |
|
|
@@ -261,6 +266,21 @@ $('btnEncrypt').onclick = async () => {
|
|
| 261 |
return;
|
| 262 |
}
|
| 263 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 264 |
show('encryptSpin', true);
|
| 265 |
show('encIcon', false);
|
| 266 |
enable('btnEncrypt', false);
|
|
|
|
| 227 |
$('estimatedTime').textContent = timeText;
|
| 228 |
|
| 229 |
if (tokenCount > TOKEN_LIMIT) {
|
| 230 |
+
$('encStatus').textContent = `⚠️ ${tokenCount}/${TOKEN_LIMIT} tokens - exceeds limit, encryption disabled`;
|
| 231 |
$('encStatus').style.color = '#d32f2f';
|
| 232 |
+
enable('btnEncrypt', false);
|
| 233 |
} else if (tokenCount < 10) {
|
| 234 |
$('encStatus').textContent = `⚠️ ${tokenCount}/${TOKEN_LIMIT} tokens - low reliability`;
|
| 235 |
$('encStatus').style.color = '#f57c00';
|
| 236 |
+
enable('btnEncrypt', true);
|
| 237 |
} else {
|
| 238 |
$('encStatus').textContent = `${tokenCount}/${TOKEN_LIMIT} tokens`;
|
| 239 |
$('encStatus').style.color = '';
|
| 240 |
+
enable('btnEncrypt', true);
|
| 241 |
}
|
| 242 |
} catch (e) {
|
| 243 |
// Tokenizer might not be ready yet
|
| 244 |
$('encStatus').textContent = '';
|
| 245 |
currentTokenCount = 0;
|
| 246 |
+
enable('btnEncrypt', true);
|
| 247 |
}
|
| 248 |
} else {
|
| 249 |
$('encStatus').textContent = '';
|
| 250 |
$('encStatus').style.color = '';
|
| 251 |
currentTokenCount = 0;
|
| 252 |
+
enable('btnEncrypt', true);
|
| 253 |
}
|
| 254 |
});
|
| 255 |
|
|
|
|
| 266 |
return;
|
| 267 |
}
|
| 268 |
|
| 269 |
+
// Validate token limit before proceeding
|
| 270 |
+
try {
|
| 271 |
+
const tokenIds = llama3Tokenizer.encode(text);
|
| 272 |
+
const TOKEN_LIMIT = 16;
|
| 273 |
+
if (tokenIds.length > TOKEN_LIMIT) {
|
| 274 |
+
console.error(`[Main] Token limit exceeded: ${tokenIds.length}/${TOKEN_LIMIT} tokens`);
|
| 275 |
+
alert(`Text is too long. Maximum ${TOKEN_LIMIT} tokens allowed, but your text has ${tokenIds.length} tokens. Please shorten your text.`);
|
| 276 |
+
return;
|
| 277 |
+
}
|
| 278 |
+
} catch (error) {
|
| 279 |
+
console.error('[Main] Token validation error:', error);
|
| 280 |
+
alert(`Error validating text: ${error.message}`);
|
| 281 |
+
return;
|
| 282 |
+
}
|
| 283 |
+
|
| 284 |
show('encryptSpin', true);
|
| 285 |
show('encIcon', false);
|
| 286 |
enable('btnEncrypt', false);
|