feat(assistant): не отвечает «какая ты модель» + тумблер кнопок на экзамене
- Идентичность: вопросы про модель/нейросеть/провайдера/системный промпт отбиваются шаблонно (META_RE, без вызова LLM) + запрет в системном промпте. - Кнопки «Подсказка»/«Спросить Квантика» на карточках экзамена скрыты по умолчанию; включаются тумблером в админке (assistant_exam_buttons → examButtons в /context → класс html.asst-exam-on открывает кнопки). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -59,6 +59,7 @@
|
||||
'<div id="asst-test-res" style="font-size:.82rem;line-height:1.5"></div>' +
|
||||
'<hr style="border:none;border-top:1px solid var(--border,#e2e8f0);margin:4px 0">' +
|
||||
'<label style="display:flex;align-items:center;gap:8px;font-size:.84rem;cursor:pointer"><input type="checkbox" id="asst-rag"> Искать ответы по учебникам (RAG)</label>' +
|
||||
'<label style="display:flex;align-items:center;gap:8px;font-size:.84rem;cursor:pointer"><input type="checkbox" id="asst-exambtn"> Кнопки помощника на карточках экзамена («Подсказка», «Спросить Квантика»)</label>' +
|
||||
'<div style="display:flex;gap:8px;flex-wrap:wrap;align-items:center">' +
|
||||
'<button id="asst-reindex" style="' + BTN_STYLE + '">Переиндексировать учебники</button>' +
|
||||
'<span id="asst-chunks" style="font-size:.78rem;color:#8a94a6"></span>' +
|
||||
@@ -80,6 +81,7 @@
|
||||
? '<span style="color:#059652">● Подключено — «Спроси» отвечает через ИИ</span>'
|
||||
: '<span style="color:#94a3b8">○ Ключ не задан — работает обычный FAQ-режим</span>';
|
||||
q('#asst-rag').checked = cfg.rag !== false;
|
||||
q('#asst-exambtn').checked = !!cfg.examButtons;
|
||||
q('#asst-chunks').textContent = (cfg.chunks || 0) + ' фрагментов учебников в индексе';
|
||||
var u = cfg.usage || {}, u30 = cfg.usage30 || {};
|
||||
q('#asst-usage').innerHTML = 'Сегодня: ' + (u.model_calls || 0) + ' к ИИ, ' + (u.cache_hits || 0) + ' из кэша, ' + (u.faq || 0) + ' FAQ. ' +
|
||||
@@ -89,6 +91,9 @@
|
||||
q('#asst-rag').addEventListener('change', function () {
|
||||
LS.adminSaveAssistant({ rag: q('#asst-rag').checked }).then(function () { LS.toast('Сохранено', 'success'); }).catch(function () {});
|
||||
});
|
||||
q('#asst-exambtn').addEventListener('change', function () {
|
||||
LS.adminSaveAssistant({ examButtons: q('#asst-exambtn').checked }).then(function () { LS.toast('Сохранено (обновите страницу экзамена)', 'success'); }).catch(function () {});
|
||||
});
|
||||
q('#asst-reindex').addEventListener('click', async function () {
|
||||
var btn = q('#asst-reindex'); btn.disabled = true; btn.textContent = 'Индексирую…';
|
||||
try { var r = await LS.adminReindexTextbooks(); cfg.chunks = (r && r.chunks) || 0; setStatus(); LS.toast('Готово: ' + cfg.chunks + ' фрагментов', 'success'); }
|
||||
|
||||
Reference in New Issue
Block a user