UNPKG

mongodb-chatbot-server

Version:

A chatbot server for retrieval augmented generation (RAG).

65 lines 2.47 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.makeCreateConversationRoute = exports.CreateConversationRequest = void 0; const zod_1 = require("zod"); const utils_1 = require("./utils"); const utils_2 = require("../../utils"); const validateRequestSchema_1 = require("../../middleware/validateRequestSchema"); exports.CreateConversationRequest = validateRequestSchema_1.SomeExpressRequest.extend({ headers: zod_1.z.object({ "req-id": zod_1.z.string(), }), }); function makeCreateConversationRoute({ conversations, createConversationCustomData, systemPrompt, }) { return async (req, res) => { const reqId = (0, utils_2.getRequestId)(req); try { (0, utils_2.logRequest)({ reqId, message: `Creating conversation`, }); const customData = await getCustomData(req, res, createConversationCustomData); const conversationInDb = await conversations.create({ customData, initialMessages: [systemPrompt], }); const responseConversation = (0, utils_1.convertConversationFromDbToApi)(conversationInDb); res.status(200).json(responseConversation); (0, utils_2.logRequest)({ reqId, message: `Responding with conversation ${conversationInDb._id.toString()}`, }); } catch (error) { const { httpStatus, message } = error.name === "RequestError" ? error : (0, utils_1.makeRequestError)({ message: error.message, stack: error.stack, httpStatus: 500, }); (0, utils_2.sendErrorResponse)({ res, reqId, httpStatus, errorMessage: message, }); } }; } exports.makeCreateConversationRoute = makeCreateConversationRoute; async function getCustomData(req, res, createConversationCustomData) { try { if (createConversationCustomData) { return await createConversationCustomData(req, res); } } catch (error) { throw (0, utils_1.makeRequestError)({ message: "Error parsing custom data from the request", stack: error.stack, httpStatus: 500, }); } } //# sourceMappingURL=createConversation.js.map