UNPKG

mongodb-rag-core

Version:

Common elements used by MongoDB Chatbot Framework components.

58 lines 2.04 kB
"use strict"; 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