diff --git a/src/main/reranker/BaseReranker.ts b/src/main/reranker/BaseReranker.ts index 5438290898..58a6426914 100644 --- a/src/main/reranker/BaseReranker.ts +++ b/src/main/reranker/BaseReranker.ts @@ -17,4 +17,15 @@ export default abstract class BaseReranker { 'Content-Type': 'application/json' } } + + public formatErrorMessage(url: string, error: any, requestBody: any) { + const errorDetails = { + url: url, + message: error.message, + status: error.response?.status, + statusText: error.response?.statusText, + requestBody: requestBody + } + return JSON.stringify(errorDetails, null, 2) + } } diff --git a/src/main/reranker/JinaReranker.ts b/src/main/reranker/JinaReranker.ts index ed14f4746d..718774ee22 100644 --- a/src/main/reranker/JinaReranker.ts +++ b/src/main/reranker/JinaReranker.ts @@ -47,8 +47,10 @@ export default class JinaReranker extends BaseReranker { .filter((doc): doc is ExtractChunkData => doc !== undefined) .sort((a, b) => b.score - a.score) } catch (error: any) { - console.error('Jina Reranker API 错误:', error.status) - throw new Error(`${error} - BaseUrl: ${baseURL}`) + const errorDetails = this.formatErrorMessage(url, error, requestBody) + + console.error('Jina Reranker API Error:', errorDetails) + throw new Error(`重排序请求失败: ${error.message}\n请求详情: ${errorDetails}`) } } } diff --git a/src/main/reranker/SiliconFlowReranker.ts b/src/main/reranker/SiliconFlowReranker.ts index bba8d5405e..d37f547b24 100644 --- a/src/main/reranker/SiliconFlowReranker.ts +++ b/src/main/reranker/SiliconFlowReranker.ts @@ -49,8 +49,10 @@ export default class SiliconFlowReranker extends BaseReranker { .filter((doc): doc is ExtractChunkData => doc !== undefined) .sort((a, b) => b.score - a.score) } catch (error: any) { - console.error('SiliconFlow Reranker API 错误:', error.status) - throw new Error(`${error} - BaseUrl: ${baseURL}`) + const errorDetails = this.formatErrorMessage(url, error, requestBody) + + console.error('SiliconFlow Reranker API 错误:', errorDetails) + throw new Error(`重排序请求失败: ${error.message}\n请求详情: ${errorDetails}`) } } } diff --git a/src/main/reranker/VoyageReranker.ts b/src/main/reranker/VoyageReranker.ts index c48fbb9bc8..0cfc024eee 100644 --- a/src/main/reranker/VoyageReranker.ts +++ b/src/main/reranker/VoyageReranker.ts @@ -53,8 +53,10 @@ export default class VoyageReranker extends BaseReranker { .filter((doc): doc is ExtractChunkData => doc !== undefined) .sort((a, b) => b.score - a.score) } catch (error: any) { - console.error('Voyage Reranker API 错误:', error.message || error) - throw new Error(`${error} - BaseUrl: ${baseURL}`) + const errorDetails = this.formatErrorMessage(url, error, requestBody) + + console.error('Voyage Reranker API Error:', errorDetails) + throw new Error(`重排序请求失败: ${error.message}\n请求详情: ${errorDetails}`) } } } diff --git a/src/main/services/KnowledgeService.ts b/src/main/services/KnowledgeService.ts index b224458a11..0e8cb9de3e 100644 --- a/src/main/services/KnowledgeService.ts +++ b/src/main/services/KnowledgeService.ts @@ -475,6 +475,9 @@ class KnowledgeService { _: Electron.IpcMainInvokeEvent, { search, base, results }: { search: string; base: KnowledgeBaseParams; results: ExtractChunkData[] } ): Promise => { + if (results.length === 0) { + return results + } return await new Reranker(base).rerank(search, results) } }