diff --git a/models/Message.js b/models/Message.js index 93ca0e453b..d204f22074 100644 --- a/models/Message.js +++ b/models/Message.js @@ -46,6 +46,20 @@ module.exports = { return { message: 'Error saving message' }; } }, - getMessages: async (filter) => await Message.find(filter).exec(), - deleteMessages: async (filter) => await Message.deleteMany(filter).exec() + getMessages: async (filter) => { + try { + return await Message.find(filter).exec() + } catch (error) { + console.error(error); + return { message: 'Error getting messages' }; + } + }, + deleteMessages: async (filter) => { + try { + return await Message.deleteMany(filter).exec() + } catch (error) { + console.error(error); + return { message: 'Error deleting messages' }; + } + } } \ No newline at end of file diff --git a/server/index.js b/server/index.js index 4d51f0d30e..057344bab0 100644 --- a/server/index.js +++ b/server/index.js @@ -1,7 +1,7 @@ const express = require('express'); const dbConnect = require('../models/dbConnect'); const { ask, titleConversation } = require('../app/chatgpt'); -const { saveMessage, getMessages } = require('../models/Message'); +const { saveMessage, getMessages, deleteMessages } = require('../models/Message'); const { saveConvo, getConvos, deleteConvos } = require('../models/Conversation'); const crypto = require('crypto'); const path = require('path'); @@ -62,11 +62,9 @@ app.post('/ask', async (req, res) => { 'X-Accel-Buffering': 'no' }); - // res.write(`event: message\ndata: ${JSON.stringify('')}\n\n`); try { let i = 0; const progressCallback = async (partial) => { - // console.log('partial', partial); if (i === 0) { userMessage.parentMessageId = parentMessageId ? parentMessageId : partial.id; userMessage.conversationId = conversationId ? conversationId : partial.conversationId; @@ -87,8 +85,12 @@ app.post('/ask', async (req, res) => { gptResponse.title = await titleConversation(text, gptResponse.text); } - if (gptResponse.text.includes('2023')) { - res.status(500).write('event: error\ndata: empty string error?'); + if ( + gptResponse.text.includes('2023') || + gptResponse.text.toLowerCase().includes('no response') || + gptResponse.text.toLowerCase().includes('no answer') + ) { + res.status(500).write('event: error\ndata: Prompt empty or too short'); res.end(); return; } @@ -101,6 +103,7 @@ app.post('/ask', async (req, res) => { res.end(); } catch (error) { console.log(error); + await deleteMessages({ id: userMessageId }); res.status(500).write('event: error\ndata: ' + error.message); res.end(); } diff --git a/src/App.jsx b/src/App.jsx index ae989928fe..10aa516527 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -15,18 +15,17 @@ const App = () => { return (