«Server is busy» — не ответ, а ошибка
Мост сам жмёт Retry, но попытки там не бесконечны. Если текст про занятость всё же доехал, разбирать его как ответ нельзя: блоков-запросов в нём нет, и цикл решил бы, что запросов не поступило, и молча закончил работу. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
97eefb57c7
commit
3586e32a89
@@ -267,9 +267,22 @@ async function callBridge(cfg, text, { fresh, temp, n, log }) {
|
|||||||
|
|
||||||
const answer = await readFile(aFile, 'utf8');
|
const answer = await readFile(aFile, 'utf8');
|
||||||
log(` ответ ${answer.length} символов за ${Math.round((Date.now() - started) / 1000)} с`);
|
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;
|
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) {
|
async function buildFirst(root, files, question) {
|
||||||
|
|||||||
Reference in New Issue
Block a user