n8n-nodes-query-retriever-rerank
Version:
Advanced n8n community node for intelligent document retrieval with multi-step reasoning, reranking, and comprehensive debugging
68 lines (67 loc) • 3.38 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.BaseStrategy = exports.NoneStrategy = exports.MultiStepQueryStrategy = exports.MultiQueryStrategy = exports.SimpleQueryStrategy = exports.StrategyRegistry = void 0;
const SimpleQueryStrategy_1 = require("./SimpleQueryStrategy");
const MultiQueryStrategy_1 = require("./MultiQueryStrategy");
const MultiStepQueryStrategy_1 = require("./MultiStepQueryStrategy");
const NoneStrategy_1 = require("./NoneStrategy");
// Strategy registry
class StrategyRegistry {
// Get strategy instance by name
static getStrategy(strategyType) {
const strategyFactory = this.strategies.get(strategyType);
if (!strategyFactory) {
throw new Error(`Unknown strategy type: ${strategyType}. Available strategies: ${Array.from(this.strategies.keys()).join(', ')}`);
}
return strategyFactory();
}
// Register a new strategy
static registerStrategy(name, factory) {
this.strategies.set(name, factory);
}
// Get all available strategy names
static getAvailableStrategies() {
return Array.from(this.strategies.keys());
}
// Get strategy info for UI options
static getStrategyOptions() {
const options = [];
for (const [key] of this.strategies) {
const strategy = this.getStrategy(key);
options.push({
name: this.getStrategyDisplayName(key),
value: key,
description: strategy.getDescription()
});
}
return options;
}
// Convert strategy key to display name
static getStrategyDisplayName(key) {
switch (key) {
case 'simple_query': return 'Simple Query';
case 'multi_query': return 'Multi-Query';
case 'multi_step_query': return 'Multi-Step Query';
case 'none': return 'None';
default: return key;
}
}
}
exports.StrategyRegistry = StrategyRegistry;
StrategyRegistry.strategies = new Map([
['simple_query', () => new SimpleQueryStrategy_1.SimpleQueryStrategy()],
['multi_query', () => new MultiQueryStrategy_1.MultiQueryStrategy()],
['multi_step_query', () => new MultiStepQueryStrategy_1.MultiStepQueryStrategy()],
['none', () => new NoneStrategy_1.NoneStrategy()],
]);
// Export all strategies for convenience
var SimpleQueryStrategy_2 = require("./SimpleQueryStrategy");
Object.defineProperty(exports, "SimpleQueryStrategy", { enumerable: true, get: function () { return SimpleQueryStrategy_2.SimpleQueryStrategy; } });
var MultiQueryStrategy_2 = require("./MultiQueryStrategy");
Object.defineProperty(exports, "MultiQueryStrategy", { enumerable: true, get: function () { return MultiQueryStrategy_2.MultiQueryStrategy; } });
var MultiStepQueryStrategy_2 = require("./MultiStepQueryStrategy");
Object.defineProperty(exports, "MultiStepQueryStrategy", { enumerable: true, get: function () { return MultiStepQueryStrategy_2.MultiStepQueryStrategy; } });
var NoneStrategy_2 = require("./NoneStrategy");
Object.defineProperty(exports, "NoneStrategy", { enumerable: true, get: function () { return NoneStrategy_2.NoneStrategy; } });
var BaseStrategy_1 = require("./BaseStrategy");
Object.defineProperty(exports, "BaseStrategy", { enumerable: true, get: function () { return BaseStrategy_1.BaseStrategy; } });