fix(Reranker): 修复rerank 400 and 完善错误信息 (#4013)
feat(Reranker): enhance error handling with detailed error messages and early return for empty results
This commit is contained in:
parent
41191f6132
commit
710171278a
@ -17,4 +17,15 @@ export default abstract class BaseReranker {
|
|||||||
'Content-Type': 'application/json'
|
'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)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -47,8 +47,10 @@ export default class JinaReranker extends BaseReranker {
|
|||||||
.filter((doc): doc is ExtractChunkData => doc !== undefined)
|
.filter((doc): doc is ExtractChunkData => doc !== undefined)
|
||||||
.sort((a, b) => b.score - a.score)
|
.sort((a, b) => b.score - a.score)
|
||||||
} catch (error: any) {
|
} catch (error: any) {
|
||||||
console.error('Jina Reranker API 错误:', error.status)
|
const errorDetails = this.formatErrorMessage(url, error, requestBody)
|
||||||
throw new Error(`${error} - BaseUrl: ${baseURL}`)
|
|
||||||
|
console.error('Jina Reranker API Error:', errorDetails)
|
||||||
|
throw new Error(`重排序请求失败: ${error.message}\n请求详情: ${errorDetails}`)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -49,8 +49,10 @@ export default class SiliconFlowReranker extends BaseReranker {
|
|||||||
.filter((doc): doc is ExtractChunkData => doc !== undefined)
|
.filter((doc): doc is ExtractChunkData => doc !== undefined)
|
||||||
.sort((a, b) => b.score - a.score)
|
.sort((a, b) => b.score - a.score)
|
||||||
} catch (error: any) {
|
} catch (error: any) {
|
||||||
console.error('SiliconFlow Reranker API 错误:', error.status)
|
const errorDetails = this.formatErrorMessage(url, error, requestBody)
|
||||||
throw new Error(`${error} - BaseUrl: ${baseURL}`)
|
|
||||||
|
console.error('SiliconFlow Reranker API 错误:', errorDetails)
|
||||||
|
throw new Error(`重排序请求失败: ${error.message}\n请求详情: ${errorDetails}`)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -53,8 +53,10 @@ export default class VoyageReranker extends BaseReranker {
|
|||||||
.filter((doc): doc is ExtractChunkData => doc !== undefined)
|
.filter((doc): doc is ExtractChunkData => doc !== undefined)
|
||||||
.sort((a, b) => b.score - a.score)
|
.sort((a, b) => b.score - a.score)
|
||||||
} catch (error: any) {
|
} catch (error: any) {
|
||||||
console.error('Voyage Reranker API 错误:', error.message || error)
|
const errorDetails = this.formatErrorMessage(url, error, requestBody)
|
||||||
throw new Error(`${error} - BaseUrl: ${baseURL}`)
|
|
||||||
|
console.error('Voyage Reranker API Error:', errorDetails)
|
||||||
|
throw new Error(`重排序请求失败: ${error.message}\n请求详情: ${errorDetails}`)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -475,6 +475,9 @@ class KnowledgeService {
|
|||||||
_: Electron.IpcMainInvokeEvent,
|
_: Electron.IpcMainInvokeEvent,
|
||||||
{ search, base, results }: { search: string; base: KnowledgeBaseParams; results: ExtractChunkData[] }
|
{ search, base, results }: { search: string; base: KnowledgeBaseParams; results: ExtractChunkData[] }
|
||||||
): Promise<ExtractChunkData[]> => {
|
): Promise<ExtractChunkData[]> => {
|
||||||
|
if (results.length === 0) {
|
||||||
|
return results
|
||||||
|
}
|
||||||
return await new Reranker(base).rerank(search, results)
|
return await new Reranker(base).rerank(search, results)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user