n8n-nodes-query-retriever-rerank
Version:
Advanced n8n community node for intelligent document retrieval with multi-step reasoning, reranking, and comprehensive debugging
54 lines (53 loc) • 1.58 kB
TypeScript
import type { BaseLanguageModel } from '@langchain/core/language_models/base';
import type { VectorStore } from '@langchain/core/vectorstores';
import type { Embeddings } from '@langchain/core/embeddings';
import type { BaseMemory } from '@langchain/core/memory';
export interface StrategyContext {
vectorStore: VectorStore;
model: BaseLanguageModel;
embeddings: Embeddings;
memory: BaseMemory | null;
config: StrategyConfig;
debugging: boolean;
llmDebugAnalysis: boolean;
}
export interface StrategyConfig {
documentsToRetrieve: number;
documentsToReturn: number;
returnRankedDocuments: boolean;
promptTemplate?: string;
queryVariations?: number;
includeOriginalQuery?: boolean;
maxSteps?: number;
enableEarlyStop?: boolean;
}
export interface StrategyResult {
answer?: string;
sourceDocuments?: any[];
debugData?: any;
error?: string;
}
export interface DebugData {
strategy: string;
configuration: StrategyConfig;
timing: Record<string, string>;
documentFlow: Record<string, number>;
queryDetails: Record<string, any>;
reranking?: Record<string, any>;
answerGeneration?: Record<string, any>;
}
export interface RerankingContext {
strategyType: string;
queryIndex?: number;
isOriginal?: boolean;
label?: string;
}
export interface RerankingResult {
docs: any[];
debugInfo: any;
}
export interface QueryStrategy {
execute(input: string, context: StrategyContext): Promise<StrategyResult>;
getName(): string;
getDescription(): string;
}