fix(reranker): fix reranking API integration with own parameters (#3629)

This commit is contained in:
SuYao 2025-03-20 14:50:09 +08:00 committed by GitHub
parent d11f892c26
commit 8f1528b21c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 12 additions and 3 deletions

View File

@ -13,7 +13,7 @@ export default abstract class BaseReranker {
public defaultHeaders() { public defaultHeaders() {
return { return {
Authorization: `Bearer ${this.base.apiKey}`, Authorization: `Bearer ${this.base.rerankApiKey}`,
'Content-Type': 'application/json' 'Content-Type': 'application/json'
} }
} }

View File

@ -10,7 +10,10 @@ export default class SiliconFlowReranker extends BaseReranker {
} }
public rerank = async (query: string, searchResults: ExtractChunkData[]): Promise<ExtractChunkData[]> => { public rerank = async (query: string, searchResults: ExtractChunkData[]): Promise<ExtractChunkData[]> => {
const url = `${this.base.baseURL}/rerank` const baseURL = this.base?.rerankBaseURL?.endsWith('/')
? this.base.rerankBaseURL.slice(0, -1)
: this.base.rerankBaseURL
const url = `${baseURL}/rerank`
const { data } = await axios.post( const { data } = await axios.post(
url, url,

View File

@ -11,10 +11,12 @@ import FileManager from './FileManager'
export const getKnowledgeBaseParams = (base: KnowledgeBase): KnowledgeBaseParams => { export const getKnowledgeBaseParams = (base: KnowledgeBase): KnowledgeBaseParams => {
const provider = getProviderByModel(base.model) const provider = getProviderByModel(base.model)
const rerankProvider = getProviderByModel(base.rerankModel)
const aiProvider = new AiProvider(provider) const aiProvider = new AiProvider(provider)
const rerankAiProvider = new AiProvider(rerankProvider)
let host = aiProvider.getBaseURL() let host = aiProvider.getBaseURL()
const rerankHost = rerankAiProvider.getBaseURL()
if (provider.type === 'gemini') { if (provider.type === 'gemini') {
host = host + '/v1beta/openai/' host = host + '/v1beta/openai/'
} }
@ -40,6 +42,8 @@ export const getKnowledgeBaseParams = (base: KnowledgeBase): KnowledgeBaseParams
baseURL: host, baseURL: host,
chunkSize, chunkSize,
chunkOverlap: base.chunkOverlap, chunkOverlap: base.chunkOverlap,
rerankBaseURL: rerankHost,
rerankApiKey: rerankAiProvider.getApiKey() || 'secret',
rerankModel: base.rerankModel?.id, rerankModel: base.rerankModel?.id,
rerankModelProvider: base.rerankModel?.provider, rerankModelProvider: base.rerankModel?.provider,
topN: base.topN topN: base.topN

View File

@ -270,6 +270,8 @@ export type KnowledgeBaseParams = {
baseURL: string baseURL: string
chunkSize?: number chunkSize?: number
chunkOverlap?: number chunkOverlap?: number
rerankApiKey?: string
rerankBaseURL?: string
rerankModel?: string rerankModel?: string
rerankModelProvider?: string rerankModelProvider?: string
topN?: number topN?: number