«Server is busy» — не ответ, а ошибка

Мост сам жмёт Retry, но попытки там не бесконечны. Если текст про занятость
всё же доехал, разбирать его как ответ нельзя: блоков-запросов в нём нет, и
цикл решил бы, что запросов не поступило, и молча закончил работу.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Alex Cube
2026-08-12 00:16:08 +03:00
co-authored by Claude Opus 5
parent 97eefb57c7
commit 3586e32a89
+13
View File
@@ -267,9 +267,22 @@ async function callBridge(cfg, text, { fresh, temp, n, log }) {
const answer = await readFile(aFile, 'utf8');
log(` ответ ${answer.length} символов за ${Math.round((Date.now() - started) / 1000)} с`);
// Мост сам жмёт Retry, когда DeepSeek отвечает «Server is busy», но попытки
// там не бесконечны. Если такой текст всё-таки доехал — это не ответ, и
// разбирать его как ответ нельзя: в блоках-запросах и правках его нет,
// а цикл решил бы, что запросов не поступило, и молча закончил работу.
if (isServerBusy(answer)) throw new Error(
'DeepSeek занят: «Server is busy». Мост исчерпал повторы — попробуйте позже.');
return answer;
}
// Ответ, которого на самом деле нет: сервер занят и просит повторить.
function isServerBusy(text) {
const t = String(text || '').trim();
return t.length < 400 && /server is busy|сервер занят|try again later/i.test(t);
}
// ------------------------------------------------------------------ цикл
async function buildFirst(root, files, question) {