feat: add custom reranker provider support in web search config

Add 'custom' to RerankerTypes enum and support for customRerankerApiUrl,
customRerankerApiKey, and customRerankerModel configuration fields. This
enables using any Jina-compatible /v1/rerank endpoint (e.g. Scaleway,
vLLM, LiteLLM) as a reranker provider.

Depends on: https://github.com/danny-avila/agents/issues/65

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Pascal Garber 2026-03-07 08:50:23 +01:00 committed by JumpLink
parent a79f7cebd5
commit a79985b8a9
No known key found for this signature in database
GPG key ID: 95355839273FC525
3 changed files with 20 additions and 1 deletions

View file

@ -842,6 +842,7 @@ export enum ScraperProviders {
export enum RerankerTypes {
JINA = 'jina',
COHERE = 'cohere',
CUSTOM = 'custom',
}
export enum SafeSearchTypes {
@ -860,6 +861,9 @@ export const webSearchSchema = z.object({
jinaApiKey: z.string().optional().default('${JINA_API_KEY}'),
jinaApiUrl: z.string().optional().default('${JINA_API_URL}'),
cohereApiKey: z.string().optional().default('${COHERE_API_KEY}'),
customRerankerApiUrl: z.string().optional().default('${CUSTOM_RERANKER_API_URL}'),
customRerankerApiKey: z.string().optional().default('${CUSTOM_RERANKER_API_KEY}'),
customRerankerModel: z.string().optional().default('${CUSTOM_RERANKER_MODEL}'),
searchProvider: z.nativeEnum(SearchProviders).optional(),
scraperProvider: z.nativeEnum(ScraperProviders).optional(),
rerankerType: z.nativeEnum(RerankerTypes).optional(),

View file

@ -31,6 +31,12 @@ export const webSearchAuth = {
jinaApiUrl: 0 as const,
},
cohere: { cohereApiKey: 1 as const },
custom: {
customRerankerApiUrl: 1 as const,
customRerankerModel: 1 as const,
/** Optional (0) */
customRerankerApiKey: 0 as const,
},
},
};
@ -72,6 +78,9 @@ export function loadWebSearchConfig(
const jinaApiKey = config?.jinaApiKey ?? '${JINA_API_KEY}';
const jinaApiUrl = config?.jinaApiUrl ?? '${JINA_API_URL}';
const cohereApiKey = config?.cohereApiKey ?? '${COHERE_API_KEY}';
const customRerankerApiUrl = config?.customRerankerApiUrl ?? '${CUSTOM_RERANKER_API_URL}';
const customRerankerApiKey = config?.customRerankerApiKey ?? '${CUSTOM_RERANKER_API_KEY}';
const customRerankerModel = config?.customRerankerModel ?? '${CUSTOM_RERANKER_MODEL}';
const safeSearch = config?.safeSearch ?? SafeSearchTypes.MODERATE;
return {
@ -80,6 +89,9 @@ export function loadWebSearchConfig(
jinaApiKey,
jinaApiUrl,
cohereApiKey,
customRerankerApiUrl,
customRerankerApiKey,
customRerankerModel,
serperApiKey,
searxngApiKey,
firecrawlApiKey,

View file

@ -9,7 +9,10 @@ export type TWebSearchKeys =
| 'firecrawlVersion'
| 'jinaApiKey'
| 'jinaApiUrl'
| 'cohereApiKey';
| 'cohereApiKey'
| 'customRerankerApiUrl'
| 'customRerankerApiKey'
| 'customRerankerModel';
export type TWebSearchCategories =
| SearchCategories.PROVIDERS