fix(assistant): не обрезать пошаговые решения посреди формулы
Лимит ответа был 420 токенов — длинное решение обрывалось внутри $$…$$, незакрытый блок показывался сырым LaTeX. Теперь лимит по режиму (ответ 1200, проверка 900, подсказка 320), а рендер отбрасывает незакрытый хвост $$ (ставит «…») вместо сырого кода. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -437,8 +437,12 @@
|
||||
return html;
|
||||
}
|
||||
function renderRich(container, text) {
|
||||
var src = String(text || '');
|
||||
// ответ мог оборваться по лимиту токенов посреди $$…$$ — не показываем сырой LaTeX, обрезаем хвост
|
||||
var dd = src.match(/\$\$/g);
|
||||
if (dd && dd.length % 2 === 1) { var li = src.lastIndexOf('$$'); src = src.slice(0, li).replace(/[\s\\]+$/, '') + ' …'; }
|
||||
var math = [];
|
||||
var protectedText = String(text || '').replace(/(\$\$[\s\S]+?\$\$|\$[^\n$]+?\$)/g, function (m) { math.push(m); return '@@M' + (math.length - 1) + '@@'; });
|
||||
var protectedText = src.replace(/(\$\$[\s\S]+?\$\$|\$[^\n$]+?\$)/g, function (m) { math.push(m); return '@@M' + (math.length - 1) + '@@'; });
|
||||
var html = mdToHtml(protectedText).replace(/@@M(\d+)@@/g, function (_, i) { return esc(math[+i] || ''); });
|
||||
container.innerHTML = html;
|
||||
ensureKatex().then(function () {
|
||||
|
||||
Reference in New Issue
Block a user