UNPKG

mongodb-rag-core

Version:

Common elements used by MongoDB Chatbot Framework components.

59 lines 2.35 kB
"use strict"; 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