@juspay/neurolink
Version:
Universal AI Development Platform with working MCP integration, multi-provider support, voice (TTS/STT/realtime), and professional CLI. 58+ external MCP servers discoverable, multimodal file processing, RAG pipelines. Build, test, and deploy AI applicatio
54 lines (53 loc) • 1.93 kB
TypeScript
/**
* Hybrid Search Implementation
*
* Combines vector (dense) search with BM25 (sparse) search for improved retrieval.
* Supports multiple fusion methods: Reciprocal Rank Fusion (RRF) and Linear Combination.
*/
import type { BM25Result, HybridSearchConfig, HybridSearchResult, BM25Index, HybridSearchOptions } from "../../types/index.js";
/**
* In-memory BM25 implementation for testing and development
*/
export declare class InMemoryBM25Index implements BM25Index {
private documents;
private avgDocLength;
private k1;
private b;
search(query: string, topK?: number): Promise<BM25Result[]>;
addDocuments(documents: Array<{
id: string;
text: string;
metadata?: Record<string, unknown>;
}>): Promise<void>;
private tokenize;
private countTermFrequency;
private countDocumentsWithTerm;
}
/**
* Reciprocal Rank Fusion
* Combines rankings from multiple retrieval methods
*
* @param rankings - Array of ranking lists, each with id and rank
* @param k - RRF constant (default: 60)
* @returns Map of document IDs to fused scores
*/
export declare function reciprocalRankFusion(rankings: Array<Array<{
id: string;
rank: number;
}>>, k?: number): Map<string, number>;
/**
* Linear Combination of normalized scores
*
* @param vectorScores - Vector search scores
* @param bm25Scores - BM25 search scores
* @param alpha - Weight for vector scores (0-1), bm25 gets 1-alpha
* @returns Map of document IDs to combined scores
*/
export declare function linearCombination(vectorScores: Map<string, number>, bm25Scores: Map<string, number>, alpha?: number): Map<string, number>;
/**
* Create a hybrid search function
*
* @param options - Search options
* @returns Hybrid search function
*/
export declare function createHybridSearch(options: HybridSearchOptions): (query: string, config?: HybridSearchConfig) => Promise<HybridSearchResult[]>;