diff --git a/api/models/index.js b/api/models/index.js index f0672134a9..6ff90f7c5b 100644 --- a/api/models/index.js +++ b/api/models/index.js @@ -1,6 +1,6 @@ const { getMessages, saveMessage, saveBingMessage, deleteMessagesSince, deleteMessages } = require('./Message'); const { getCustomGpts, updateCustomGpt, updateByLabel, deleteCustomGpts } = require('./CustomGpt'); -const { getConvoTitle, getConvo, saveConvo } = require('./Conversation'); +const { getConvoTitle, getConvo, saveConvo, updateConvo } = require('./Conversation'); module.exports = { getMessages, @@ -11,6 +11,7 @@ module.exports = { getConvoTitle, getConvo, saveConvo, + updateConvo, getCustomGpts, updateCustomGpt, updateByLabel, diff --git a/api/server/routes/ask.js b/api/server/routes/ask.js index de80af099f..fff05511c0 100644 --- a/api/server/routes/ask.js +++ b/api/server/routes/ask.js @@ -4,7 +4,7 @@ const router = express.Router(); const askBing = require('./askBing'); const askSydney = require('./askSydney'); const { titleConvo, askClient, browserClient, customClient } = require('../../app/'); -const { getConvo, saveMessage, getConvoTitle, saveConvo } = require('../../models'); +const { getConvo, saveMessage, getConvoTitle, saveConvo, updateConvo } = require('../../models'); const { handleError, sendMessage, createOnProgress, handleText } = require('./handlers'); const { getMessages } = require('../../models/Message'); @@ -169,7 +169,7 @@ const ask = async ({ } await saveMessage(gptResponse); - await saveConvo(req?.session?.user?.username, gptResponse); + await updateConvo(req?.session?.user?.username, gptResponse); sendMessage(res, { title: await getConvoTitle(req?.session?.user?.username, conversationId), final: true, @@ -181,7 +181,7 @@ const ask = async ({ if (userParentMessageId == '00000000-0000-0000-0000-000000000000') { const title = await titleConvo({ model, text, response: gptResponse }); - await saveConvo( + await updateConvo( req?.session?.user?.username, { /* again, for sake of browser client, will soon refactor */ diff --git a/api/server/routes/askBing.js b/api/server/routes/askBing.js index 05bf281025..535b580ed5 100644 --- a/api/server/routes/askBing.js +++ b/api/server/routes/askBing.js @@ -2,7 +2,7 @@ const express = require('express'); const crypto = require('crypto'); const router = express.Router(); const { titleConvo, askBing } = require('../../app/'); -const { saveBingMessage, getConvoTitle, saveConvo } = require('../../models'); +const { saveBingMessage, getConvoTitle, saveConvo, updateConvo } = require('../../models'); const { handleError, sendMessage, createOnProgress, handleText } = require('./handlers'); router.post('/', async (req, res) => { @@ -123,7 +123,7 @@ const ask = async ({ // Attition: the api will also create new conversationId while using invalid userMessage.parentMessageId, // but in this situation, don't change the conversationId, but create new convo. if (conversationId != userMessage.conversationId && isNewConversation) - await saveConvo( + await updateConvo( req?.session?.user?.username, { conversationId: conversationId, @@ -148,7 +148,7 @@ const ask = async ({ response.text = await handleText(response, true); await saveBingMessage(response); - await saveConvo(req?.session?.user?.username, { model, chatGptLabel: null, promptPrefix: null, ...convo, ...response }); + await updateConvo(req?.session?.user?.username, { model, chatGptLabel: null, promptPrefix: null, ...convo, ...response }); sendMessage(res, { title: await getConvoTitle(req?.session?.user?.username, conversationId), @@ -161,11 +161,9 @@ const ask = async ({ if (userParentMessageId == '00000000-0000-0000-0000-000000000000') { const title = await titleConvo({ model, text, response }); - await saveConvo( + await updateConvo( req?.session?.user?.username, { - ...convo, - ...response, conversationId, title } diff --git a/api/server/routes/askSydney.js b/api/server/routes/askSydney.js index 731b82cbb3..d74e4a3afe 100644 --- a/api/server/routes/askSydney.js +++ b/api/server/routes/askSydney.js @@ -2,7 +2,7 @@ const express = require('express'); const crypto = require('crypto'); const router = express.Router(); const { titleConvo, askSydney } = require('../../app/'); -const { saveBingMessage, saveConvo, getConvoTitle } = require('../../models'); +const { saveBingMessage, saveConvo, updateConvo, getConvoTitle } = require('../../models'); const { handleError, sendMessage, createOnProgress, handleText } = require('./handlers'); router.post('/', async (req, res) => { @@ -146,7 +146,7 @@ const ask = async ({ // Attition: the api will also create new conversationId while using invalid userMessage.parentMessageId, // but in this situation, don't change the conversationId, but create new convo. if (conversationId != userMessage.conversationId && isNewConversation) - await saveConvo( + await updateConvo( req?.session?.user?.username, { conversationId: conversationId, @@ -158,7 +158,7 @@ const ask = async ({ response.text = await handleText(response, true); // Save sydney response & convo, then send await saveBingMessage(response); - await saveConvo(req?.session?.user?.username, { model, chatGptLabel: null, promptPrefix: null, ...convo, ...response }); + await updateConvo(req?.session?.user?.username, { model, chatGptLabel: null, promptPrefix: null, ...convo, ...response }); sendMessage(res, { title: await getConvoTitle(req?.session?.user?.username, conversationId), @@ -171,11 +171,9 @@ const ask = async ({ if (userParentMessageId == '00000000-0000-0000-0000-000000000000') { const title = await titleConvo({ model, text, response }); - await saveConvo( + await updateConvo( req?.session?.user?.username, { - ...convo, - ...response, conversationId, title }