UNPKG

@lancedb/lancedb

Version:

LanceDB: A serverless, low-latency vector database for AI applications

29 lines (28 loc) 1 kB
"use strict"; // SPDX-License-Identifier: Apache-2.0 // SPDX-FileCopyrightText: Copyright The LanceDB Authors Object.defineProperty(exports, "__esModule", { value: true }); exports.RRFReranker = void 0; const arrow_1 = require("../arrow"); const native_1 = require("../native"); /** * Reranks the results using the Reciprocal Rank Fusion (RRF) algorithm. * * @hideconstructor */ class RRFReranker { inner; /** @ignore */ constructor(inner) { this.inner = inner; } static async create(k = 60) { return new RRFReranker(await native_1.RrfReranker.tryNew(new Float32Array([k]))); } async rerankHybrid(query, vecResults, ftsResults) { const buffer = await this.inner.rerankHybrid(query, await (0, arrow_1.fromRecordBatchToBuffer)(vecResults), await (0, arrow_1.fromRecordBatchToBuffer)(ftsResults)); const recordBatch = await (0, arrow_1.fromBufferToRecordBatch)(buffer); return recordBatch; } } exports.RRFReranker = RRFReranker;