Update index.html
Browse files- index.html +16 -10
index.html
CHANGED
|
@@ -173,7 +173,7 @@
|
|
| 173 |
}
|
| 174 |
#model-select:focus { border-color: var(--accent); }
|
| 175 |
|
| 176 |
-
.mode-pills { display: flex; gap: 4px; flex-shrink: 0; }
|
| 177 |
.mode-pill {
|
| 178 |
background: var(--surface2); border: 1px solid var(--border); color: var(--muted);
|
| 179 |
border-radius: 8px; padding: 7px 10px; font-size: 11px; cursor: pointer;
|
|
@@ -181,6 +181,8 @@
|
|
| 181 |
}
|
| 182 |
.mode-pill.active { background: var(--accent); color: #000; border-color: var(--accent); font-weight: 600; }
|
| 183 |
|
|
|
|
|
|
|
| 184 |
.model-loading-hint {
|
| 185 |
font-size: 10px; color: var(--muted); padding: 0 12px 6px;
|
| 186 |
display: none; font-style: italic; background: var(--surface); flex-shrink: 0;
|
|
@@ -483,6 +485,7 @@
|
|
| 483 |
<option value="gemma-1b">Gemma 3 1B</option>
|
| 484 |
</select>
|
| 485 |
<div class="mode-pills">
|
|
|
|
| 486 |
<button class="mode-pill" data-mode="fast" onclick="setMode('fast')">β‘ Fast</button>
|
| 487 |
<button class="mode-pill active" data-mode="medium" onclick="setMode('medium')">βοΈ MΓ©dio</button>
|
| 488 |
<button class="mode-pill" data-mode="thinking" onclick="setMode('thinking')">π§ Thinking</button>
|
|
@@ -572,6 +575,13 @@ let currentUtterance = null;
|
|
| 572 |
let currentMode = 'medium';
|
| 573 |
let currentModelKey = 'gemma-1b';
|
| 574 |
let modelJustChanged = false;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 575 |
|
| 576 |
// ββ Sidebar (desktop collapse / mobile drawer) ββββββββββββββββββββββββββββββ
|
| 577 |
function toggleSidebar() {
|
|
@@ -601,7 +611,7 @@ function switchMode(mode) {
|
|
| 601 |
// ββ Modelos e Modo de raciocΓnio (Fast/MΓ©dio/Thinking) βββββββββββββββββββββββ
|
| 602 |
function setMode(mode) {
|
| 603 |
currentMode = mode;
|
| 604 |
-
document.querySelectorAll('.mode-pill').forEach(el => {
|
| 605 |
el.classList.toggle('active', el.dataset.mode === mode);
|
| 606 |
});
|
| 607 |
}
|
|
@@ -894,16 +904,11 @@ async function sendMessage() {
|
|
| 894 |
thinkingWrapper.className = 'msg-wrapper assistant';
|
| 895 |
const thinkingDiv = document.createElement('div');
|
| 896 |
thinkingDiv.className = 'msg thinking dots';
|
| 897 |
-
thinkingDiv.textContent = 'β³ Pensando';
|
| 898 |
thinkingWrapper.appendChild(thinkingDiv);
|
| 899 |
document.getElementById('chat').appendChild(thinkingWrapper);
|
| 900 |
document.getElementById('chat').scrollTop = 99999;
|
| 901 |
|
| 902 |
-
const systemPrompt = document.getElementById('system-prompt').value.trim();
|
| 903 |
-
const messages = systemPrompt
|
| 904 |
-
? [{role:'system', content:systemPrompt}, ...history]
|
| 905 |
-
: [...history];
|
| 906 |
-
|
| 907 |
const t0 = Date.now();
|
| 908 |
|
| 909 |
try {
|
|
@@ -911,9 +916,10 @@ async function sendMessage() {
|
|
| 911 |
method: 'POST',
|
| 912 |
headers: {'Content-Type':'application/json'},
|
| 913 |
body: JSON.stringify({
|
| 914 |
-
messages,
|
| 915 |
model: currentModelKey,
|
| 916 |
mode: currentMode,
|
|
|
|
| 917 |
max_tokens: parseInt(document.getElementById('max-tokens').value),
|
| 918 |
temperature: parseFloat(document.getElementById('temperature').value),
|
| 919 |
})
|
|
@@ -934,7 +940,7 @@ async function sendMessage() {
|
|
| 934 |
saveCurrentConv();
|
| 935 |
|
| 936 |
const tokMeta = usage.total_tokens
|
| 937 |
-
? `${usage.completion_tokens} tok β’ ${(ms/1000).toFixed(1)}s`
|
| 938 |
: `${(ms/1000).toFixed(1)}s`;
|
| 939 |
|
| 940 |
appendMessage('assistant', reply, tokMeta);
|
|
|
|
| 173 |
}
|
| 174 |
#model-select:focus { border-color: var(--accent); }
|
| 175 |
|
| 176 |
+
.mode-pills { display: flex; gap: 4px; flex-shrink: 0; flex-wrap: wrap; }
|
| 177 |
.mode-pill {
|
| 178 |
background: var(--surface2); border: 1px solid var(--border); color: var(--muted);
|
| 179 |
border-radius: 8px; padding: 7px 10px; font-size: 11px; cursor: pointer;
|
|
|
|
| 181 |
}
|
| 182 |
.mode-pill.active { background: var(--accent); color: #000; border-color: var(--accent); font-weight: 600; }
|
| 183 |
|
| 184 |
+
#web-toggle.active { background: #2b7fff; color: #fff; border-color: #2b7fff; }
|
| 185 |
+
|
| 186 |
.model-loading-hint {
|
| 187 |
font-size: 10px; color: var(--muted); padding: 0 12px 6px;
|
| 188 |
display: none; font-style: italic; background: var(--surface); flex-shrink: 0;
|
|
|
|
| 485 |
<option value="gemma-1b">Gemma 3 1B</option>
|
| 486 |
</select>
|
| 487 |
<div class="mode-pills">
|
| 488 |
+
<button class="mode-pill" id="web-toggle" onclick="toggleWeb()">π Web</button>
|
| 489 |
<button class="mode-pill" data-mode="fast" onclick="setMode('fast')">β‘ Fast</button>
|
| 490 |
<button class="mode-pill active" data-mode="medium" onclick="setMode('medium')">βοΈ MΓ©dio</button>
|
| 491 |
<button class="mode-pill" data-mode="thinking" onclick="setMode('thinking')">π§ Thinking</button>
|
|
|
|
| 575 |
let currentMode = 'medium';
|
| 576 |
let currentModelKey = 'gemma-1b';
|
| 577 |
let modelJustChanged = false;
|
| 578 |
+
let webEnabled = false;
|
| 579 |
+
|
| 580 |
+
// ββ Web toggle βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
| 581 |
+
function toggleWeb() {
|
| 582 |
+
webEnabled = !webEnabled;
|
| 583 |
+
document.getElementById('web-toggle').classList.toggle('active', webEnabled);
|
| 584 |
+
}
|
| 585 |
|
| 586 |
// ββ Sidebar (desktop collapse / mobile drawer) ββββββββββββββββββββββββββββββ
|
| 587 |
function toggleSidebar() {
|
|
|
|
| 611 |
// ββ Modelos e Modo de raciocΓnio (Fast/MΓ©dio/Thinking) βββββββββββββββββββββββ
|
| 612 |
function setMode(mode) {
|
| 613 |
currentMode = mode;
|
| 614 |
+
document.querySelectorAll('.mode-pill[data-mode]').forEach(el => {
|
| 615 |
el.classList.toggle('active', el.dataset.mode === mode);
|
| 616 |
});
|
| 617 |
}
|
|
|
|
| 904 |
thinkingWrapper.className = 'msg-wrapper assistant';
|
| 905 |
const thinkingDiv = document.createElement('div');
|
| 906 |
thinkingDiv.className = 'msg thinking dots';
|
| 907 |
+
thinkingDiv.textContent = webEnabled ? 'π Buscando na web' : 'β³ Pensando';
|
| 908 |
thinkingWrapper.appendChild(thinkingDiv);
|
| 909 |
document.getElementById('chat').appendChild(thinkingWrapper);
|
| 910 |
document.getElementById('chat').scrollTop = 99999;
|
| 911 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 912 |
const t0 = Date.now();
|
| 913 |
|
| 914 |
try {
|
|
|
|
| 916 |
method: 'POST',
|
| 917 |
headers: {'Content-Type':'application/json'},
|
| 918 |
body: JSON.stringify({
|
| 919 |
+
messages: history,
|
| 920 |
model: currentModelKey,
|
| 921 |
mode: currentMode,
|
| 922 |
+
web: webEnabled,
|
| 923 |
max_tokens: parseInt(document.getElementById('max-tokens').value),
|
| 924 |
temperature: parseFloat(document.getElementById('temperature').value),
|
| 925 |
})
|
|
|
|
| 940 |
saveCurrentConv();
|
| 941 |
|
| 942 |
const tokMeta = usage.total_tokens
|
| 943 |
+
? `${usage.completion_tokens} tok β’ ${(ms/1000).toFixed(1)}s${webEnabled ? ' β’ π' : ''}`
|
| 944 |
: `${(ms/1000).toFixed(1)}s`;
|
| 945 |
|
| 946 |
appendMessage('assistant', reply, tokMeta);
|