mirror of
https://github.com/Youzini-afk/ST-Bionic-Memory-Ecology.git
synced 2026-05-15 22:30:38 +08:00
fix: 修复所有 abort() 不传 reason 导致的'signal is aborted without reason'提示
为 llm.js/embedding.js/vector-index.js/index.js 中所有 controller.abort() 添加具体原因: - 超时: 'LLM 请求超时 (60s)' / 'Embedding 请求超时 (45s)' - 信号传递: 转发原始 signal.reason
This commit is contained in:
6
llm.js
6
llm.js
@@ -215,7 +215,7 @@ function buildJsonAttemptMessages(systemPrompt, userPrompt, attempt, reason = ''
|
||||
|
||||
async function fetchWithTimeout(url, options = {}, timeoutMs = LLM_REQUEST_TIMEOUT_MS) {
|
||||
const controller = new AbortController();
|
||||
const timeout = setTimeout(() => controller.abort(), timeoutMs);
|
||||
const timeout = setTimeout(() => controller.abort(new DOMException(`LLM 请求超时 (${Math.round(timeoutMs / 1000)}s)`, 'AbortError')), timeoutMs);
|
||||
const signal = options.signal
|
||||
? createCombinedAbortSignal(options.signal, controller.signal)
|
||||
: controller.signal;
|
||||
@@ -243,10 +243,10 @@ function createCombinedAbortSignal(...signals) {
|
||||
const controller = new AbortController();
|
||||
for (const signal of validSignals) {
|
||||
if (signal.aborted) {
|
||||
controller.abort();
|
||||
controller.abort(signal.reason);
|
||||
return controller.signal;
|
||||
}
|
||||
signal.addEventListener('abort', () => controller.abort(), { once: true });
|
||||
signal.addEventListener('abort', () => controller.abort(signal.reason), { once: true });
|
||||
}
|
||||
return controller.signal;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user