mongodb-rag-core
Version:
Common elements used by MongoDB Chatbot Framework components.
58 lines • 2.04 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.makeMongoDbVerifiedAnswerStore = void 0;
const MongoDbDatabaseConnection_1 = require("../MongoDbDatabaseConnection");
function makeMongoDbVerifiedAnswerStore({ connectionUri, databaseName, collectionName, }) {
const { db, drop, close } = (0, MongoDbDatabaseConnection_1.makeMongoDbDatabaseConnection)({
connectionUri,
databaseName,
});
const collection = db.collection(collectionName);
return {
drop,
close,
async find(query) {
return collection.find(query).toArray();
},
async findNearestNeighbors(vector, options) {
const { indexName, path, k, minScore, filter = {}, numCandidates, } = {
// Default options
indexName: "vector_index",
path: "question.embedding",
k: 1,
minScore: 0.95,
// User options override
...(options ?? {}),
};
return collection
.aggregate([
{
$vectorSearch: {
index: indexName,
queryVector: vector,
path,
limit: k,
numCandidates: numCandidates ?? k * 15,
filter,
},
},
{
$addFields: {
score: {
$meta: "vectorSearchScore",
},
},
},
{
$match: {
score: { $gte: minScore },
hidden: { $in: [false, null] },
},
},
])
.toArray();
},
};
}
exports.makeMongoDbVerifiedAnswerStore = makeMongoDbVerifiedAnswerStore;
//# sourceMappingURL=MongoDbVerifiedAnswerStore.js.map