@roadiehq/rag-ai-backend-retrieval-augmenter
Version:
39 lines (35 loc) • 1.16 kB
JavaScript
;
var CombiningPostProcessor = require('./postProcessors/CombiningPostProcessor.cjs.js');
class DefaultRetrievalPipeline {
routers;
retrievers;
postProcessors;
constructor({
routers,
retrievers,
postProcessors
}) {
this.routers = routers ?? [];
this.retrievers = retrievers ?? [];
this.postProcessors = postProcessors ?? [new CombiningPostProcessor.CombiningPostProcessor()];
}
async retrieveAugmentationContext(query, source, filter) {
const routedRetrievers = (await Promise.all(
this.routers.map((router) => router.determineRetriever(query, source))
)).flat();
const augmentations = /* @__PURE__ */ new Map();
for (const retriever of [...this.retrievers, ...routedRetrievers]) {
augmentations.set(
retriever.id,
await retriever.retrieve(query, source, filter)
);
}
return (await Promise.all(
this.postProcessors.map(
(postProcessor) => postProcessor.process(query, source, augmentations)
)
)).flat();
}
}
exports.DefaultRetrievalPipeline = DefaultRetrievalPipeline;
//# sourceMappingURL=DefaultRetrievalPipeline.cjs.js.map