mongodb-rag-core
Version:
Common elements used by MongoDB Chatbot Framework components.
59 lines • 2.35 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.makeMongoDbSearchResultsStore = exports.SearchResultRecordSchema = exports.ResultChunkSchema = exports.SearchRecordDataSourceSchema = void 0;
const zod_1 = require("zod");
const MongoDbDatabaseConnection_1 = require("../MongoDbDatabaseConnection");
exports.SearchRecordDataSourceSchema = zod_1.z.object({
name: zod_1.z.string(),
type: zod_1.z.string().optional(),
versionLabel: zod_1.z.string().optional(),
});
exports.ResultChunkSchema = zod_1.z.object({
url: zod_1.z.string(),
title: zod_1.z.string(),
text: zod_1.z.string(),
metadata: zod_1.z
.object({
sourceName: zod_1.z.string(),
sourceType: zod_1.z.string().optional(),
tags: zod_1.z.array(zod_1.z.string()).optional(),
})
.passthrough(),
});
exports.SearchResultRecordSchema = zod_1.z.object({
query: zod_1.z.string(),
results: zod_1.z.array(exports.ResultChunkSchema),
dataSources: zod_1.z.array(exports.SearchRecordDataSourceSchema).optional(),
limit: zod_1.z.number().optional(),
createdAt: zod_1.z.date(),
customData: zod_1.z.object({}).passthrough().optional(),
});
function makeMongoDbSearchResultsStore({ connectionUri, databaseName, collectionName = "search_results", }) {
const { db, drop, close } = (0, MongoDbDatabaseConnection_1.makeMongoDbDatabaseConnection)({
connectionUri,
databaseName,
});
const searchResultsCollection = db.collection(collectionName);
return {
drop,
close,
metadata: {
databaseName,
collectionName,
},
async saveSearchResult(record) {
const insertResult = await searchResultsCollection.insertOne(record);
if (!insertResult.acknowledged) {
throw new Error("Insert was not acknowledged by MongoDB");
}
if (!insertResult.insertedId) {
throw new Error("No insertedId returned from MongoDbSearchResultsStore.saveSearchResult insertOne");
}
},
async init() {
await searchResultsCollection.createIndex({ createdAt: -1 });
},
};
}
exports.makeMongoDbSearchResultsStore = makeMongoDbSearchResultsStore;
//# sourceMappingURL=MongoDbSearchResultsStore.js.map