UNPKG

@juspay/neurolink

Version:

The pipe layer of an AI nervous system: one interface connecting provider neurons to your application, across three inference types — generate, stream and decide. `decide` returns typed, calibrated judgements from a non-generative model (~400ms, ~$0.00002

125 lines (124 loc) • 3.82 kB
/** * Reranker Factory * * Factory for creating reranker instances with configuration. * Follows the BaseFactory pattern for consistent lifecycle management. */ import { BaseFactory } from "../../core/infrastructure/index.js"; import type { AIProvider, Reranker, RerankerConfig, RerankerMetadata, RerankerType } from "../../types/index.js"; /** * Reranker Factory * * Creates reranker instances based on type with configuration support. * Uses lazy loading via dynamic imports to avoid circular dependencies. */ export declare class RerankerFactory extends BaseFactory<Reranker, RerankerConfig> { private static instance; private metadataMap; private modelProvider; private constructor(); /** * Get singleton instance */ static getInstance(): RerankerFactory; /** * Reset singleton (for testing) */ static resetInstance(): void; /** * Set the AI provider for LLM-based rerankers */ setModelProvider(provider: AIProvider): void; /** * Register all default rerankers */ protected registerAll(): Promise<void>; /** * Create LLM-based reranker wrapper */ private createLLMReranker; /** * Create cross-encoder reranker wrapper */ private createCrossEncoderReranker; /** * Create Cohere reranker wrapper */ private createCohereReranker; /** * Create simple reranker wrapper */ private createSimpleReranker; /** * Create batch reranker wrapper */ private createBatchReranker; /** * Register a reranker with metadata and aliases */ registerReranker(type: RerankerType, factory: (config?: RerankerConfig) => Promise<Reranker>, metadata: RerankerMetadata): void; /** * Create a reranker by type or alias */ createReranker(typeOrAlias: string, config?: RerankerConfig): Promise<Reranker>; /** * Get metadata for a reranker */ getRerankerMetadata(typeOrAlias: string): Promise<RerankerMetadata | undefined>; /** * Get default configuration for a reranker */ getDefaultConfig(typeOrAlias: string): Promise<Partial<RerankerConfig> | undefined>; /** * Get available reranker types (not including aliases) */ getAvailableTypes(): Promise<RerankerType[]>; /** * Get all aliases mapped to their types */ getTypeAliases(): Promise<Map<string, string>>; /** * Check if a type exists */ hasType(typeOrAlias: string): Promise<boolean>; /** * Get rerankers suitable for a use case */ getRerankersForUseCase(useCase: string): Promise<RerankerType[]>; /** * Get rerankers that don't require external APIs */ getLocalRerankers(): Promise<RerankerType[]>; /** * Get rerankers that don't require AI models */ getModelFreeRerankers(): Promise<RerankerType[]>; /** * Get all reranker metadata */ getAllMetadata(): Promise<Map<RerankerType, RerankerMetadata>>; /** * Clear factory and metadata */ clear(): void; } /** * Global reranker factory singleton */ export declare const rerankerFactory: RerankerFactory; /** * Convenience function to create a reranker */ export declare function createReranker(typeOrAlias: string, config?: RerankerConfig): Promise<Reranker>; /** * Convenience function to get available reranker types */ export declare function getAvailableRerankerTypes(): Promise<RerankerType[]>; /** * Convenience function to get reranker metadata */ export declare function getRerankerMetadata(typeOrAlias: string): Promise<RerankerMetadata | undefined>; /** * Convenience function to get default config */ export declare function getRerankerDefaultConfig(typeOrAlias: string): Promise<Partial<RerankerConfig> | undefined>;