cherry-studio/src/main/knowledge/reranker/strategies/VoyageStrategy.ts
Chen Tao b6d10656f9
feat: refactor Knowledge Base (#8384)
Co-authored-by: icarus <eurfelux@gmail.com>
Co-authored-by: eeee0717 <chentao020717@outlook.com>
2025-09-04 17:23:31 +08:00

25 lines
702 B
TypeScript

import { MultiModalDocument, RerankStrategy } from './RerankStrategy'
export class VoyageAIStrategy implements RerankStrategy {
buildUrl(baseURL?: string): string {
if (baseURL && baseURL.endsWith('/')) {
return `${baseURL}rerank`
}
if (baseURL && !baseURL.endsWith('/v1')) {
baseURL = `${baseURL}/v1`
}
return `${baseURL}/rerank`
}
buildRequestBody(query: string, documents: MultiModalDocument[], topN: number, model?: string) {
const textDocuments = documents.filter((d) => d.text).map((d) => d.text!)
return {
model,
query,
documents: textDocuments,
top_k: topN
}
}
extractResults(data: any) {
return data.data
}
}