feat: save error message into database.

This commit is contained in:
Wentao Lyu 2023-03-14 03:38:47 +08:00
parent d9e5464b3b
commit 0fa19bb6ad
6 changed files with 37 additions and 10 deletions

View file

@ -36,20 +36,25 @@ const messageSchema = mongoose.Schema({
type: Boolean,
required: true,
default: false
}
},
error: {
type: Boolean,
default: false
},
}, { timestamps: true });
const Message = mongoose.models.Message || mongoose.model('Message', messageSchema);
module.exports = {
saveMessage: async ({ messageId, conversationId, parentMessageId, sender, text, isCreatedByUser=false }) => {
saveMessage: async ({ messageId, conversationId, parentMessageId, sender, text, isCreatedByUser=false, error }) => {
try {
await Message.findOneAndUpdate({ messageId }, {
conversationId,
parentMessageId,
sender,
text,
isCreatedByUser
isCreatedByUser,
error
}, { upsert: true, new: true });
return { messageId, conversationId, parentMessageId, sender, text, isCreatedByUser };
} catch (error) {

View file

@ -131,6 +131,10 @@ router.post('/', async (req, res) => {
gptResponse.text.toLowerCase().includes('no response') ||
gptResponse.text.toLowerCase().includes('no answer')
) {
await saveMessage({
messageId: crypto.randomUUID(), sender: model,
conversationId, parentMessageId: userMessageId,
error: true, text: 'Prompt empty or too short'});
return handleError(res, 'Prompt empty or too short');
}
@ -165,6 +169,10 @@ router.post('/', async (req, res) => {
} catch (error) {
console.log(error);
// await deleteMessages({ messageId: userMessageId });
await saveMessage({
messageId: crypto.randomUUID(), sender: model,
conversationId, parentMessageId: userMessageId,
error: true, text: error.message});
handleError(res, error.message);
}
});

View file

@ -107,6 +107,10 @@ router.post('/', async (req, res) => {
} catch (error) {
console.log(error);
// await deleteMessages({ messageId: userMessageId });
await saveMessage({
messageId: crypto.randomUUID(), sender: model,
conversationId, parentMessageId: userMessageId,
error: true, text: error.message});
handleError(res, error.message);
}
});

View file

@ -117,6 +117,10 @@ router.post('/', async (req, res) => {
} catch (error) {
console.log(error);
// await deleteMessages({ messageId: userMessageId });
await saveMessage({
messageId: crypto.randomUUID(), sender: model,
conversationId, parentMessageId: userMessageId,
error: true, text: error.message});
handleError(res, error.message);
}
});