fix: debounce title request and handle error with default title

This commit is contained in:
Danny Avila 2023-03-15 12:47:30 -04:00
parent 96ca783517
commit 2fd50c99b8
7 changed files with 70 additions and 100 deletions

View file

@ -3,15 +3,15 @@ const crypto = require('crypto');
const router = express.Router();
const askBing = require('./askBing');
const askSydney = require('./askSydney');
const {
titleConvo,
askClient,
browserClient,
customClient
// detectCode
} = require('../../app/');
const { askClient, browserClient, customClient } = require('../../app/');
const { getConvo, saveMessage, getConvoTitle, saveConvo } = require('../../models');
const { handleError, sendMessage, createOnProgress, handleText } = require('./handlers');
const {
handleError,
sendMessage,
createOnProgress,
genTitle,
handleText
} = require('./handlers');
const { getMessages } = require('../../models/Message');
router.use('/bing', askBing);
@ -42,15 +42,6 @@ router.post('/', async (req, res) => {
...convo
});
// if (model === 'chatgptCustom' && !chatGptLabel && conversationId) {
// const convo = await getConvo({ conversationId });
// if (convo) {
// console.log('found convo for custom gpt', { convo })
// chatGptLabel = convo.chatGptLabel;
// promptPrefix = convo.promptPrefix;
// }
// }
await saveMessage(userMessage);
await saveConvo({ ...userMessage, model, ...convo });
@ -94,17 +85,6 @@ router.post('/regenerate', async (req, res) => {
res
});
} else return handleError(res, { text: 'Parent message not found' });
// if (model === 'chatgptCustom' && !chatGptLabel && conversationId) {
// const convo = await getConvo({ conversationId });
// if (convo) {
// console.log('found convo for custom gpt', { convo })
// chatGptLabel = convo.chatGptLabel;
// promptPrefix = convo.promptPrefix;
// }
// }
// await saveConvo({ ...userMessage, model, chatGptLabel, promptPrefix });
});
const ask = async ({
@ -212,13 +192,7 @@ const ask = async ({
res.end();
if (userParentMessageId == '00000000-0000-0000-0000-000000000000') {
const title = await titleConvo({
model,
message: text,
response: JSON.stringify(gptResponse?.text)
});
console.log('CONVERSATION TITLE', title);
const title = await genTitle({ model, text, response: gptResponse });
await saveConvo({
conversationId,

View file

@ -1,9 +1,15 @@
const express = require('express');
const crypto = require('crypto');
const router = express.Router();
const { titleConvo, getCitations, citeText, askBing } = require('../../app/');
const { getCitations, citeText, askBing } = require('../../app/');
const { saveMessage, getConvoTitle, saveConvo } = require('../../models');
const { handleError, sendMessage, createOnProgress, handleText } = require('./handlers');
const {
handleError,
sendMessage,
createOnProgress,
genTitle,
handleText
} = require('./handlers');
const citationRegex = /\[\^\d+?\^]/g;
router.post('/', async (req, res) => {
@ -146,13 +152,7 @@ const ask = async ({
res.end();
if (userParentMessageId == '00000000-0000-0000-0000-000000000000') {
const title = await titleConvo({
model,
message: text,
response: JSON.stringify(response?.text)
});
console.log('CONVERSATION TITLE', title);
const title = await genTitle({ model, text, response });
await saveConvo({
conversationId,

View file

@ -1,9 +1,15 @@
const express = require('express');
const crypto = require('crypto');
const router = express.Router();
const { titleConvo, getCitations, citeText, askSydney } = require('../../app/');
const { getCitations, citeText, askSydney } = require('../../app/');
const { saveMessage, saveConvo, getConvoTitle } = require('../../models');
const { handleError, sendMessage, createOnProgress, handleText } = require('./handlers');
const {
handleError,
sendMessage,
createOnProgress,
genTitle,
handleText
} = require('./handlers');
const citationRegex = /\[\^\d+?\^]/g;
router.post('/', async (req, res) => {
@ -158,13 +164,7 @@ const ask = async ({
res.end();
if (userParentMessageId == '00000000-0000-0000-0000-000000000000') {
const title = await titleConvo({
model,
message: text,
response: JSON.stringify(response?.text)
});
console.log('CONVERSATION TITLE', title);
const title = await genTitle({ model, text, response });
await saveConvo({
conversationId,

View file

@ -1,41 +1,12 @@
const express = require('express');
const router = express.Router();
const { titleConvo } = require('../../app/');
const { getConvo, saveConvo, getConvoTitle } = require('../../models');
const { getConvosByPage, deleteConvos, updateConvo } = require('../../models/Conversation');
const { getMessages } = require('../../models/Message');
router.get('/', async (req, res) => {
const pageNumber = req.query.pageNumber || 1;
res.status(200).send(await getConvosByPage(pageNumber));
});
router.post('/gen_title', async (req, res) => {
const { conversationId } = req.body.arg;
const convo = await getConvo(conversationId)
const firstMessage = (await getMessages({ conversationId }))[0]
const secondMessage = (await getMessages({ conversationId }))[1]
// if (convo.title == 'New Chat') {
// const title = await titleConvo({
// model: convo?.model,
// message: firstMessage?.text,
// response: JSON.stringify(secondMessage?.text || '')
// });
// console.log('CONVERSATION TITLE', title);
// await saveConvo({
// conversationId,
// title
// })
// res.status(200).send(title);
// } else
return res.status(200).send(convo.title);
});
router.post('/clear', async (req, res) => {
let filter = {};
const { conversationId } = req.body.arg;

View file

@ -1,4 +1,4 @@
const { citeText, detectCode } = require('../../app/');
const { titleConvo, citeText, detectCode } = require('../../app/');
const _ = require('lodash');
const sanitizeHtml = require('sanitize-html');
@ -14,6 +14,23 @@ const sendMessage = (res, message) => {
res.write(`event: message\ndata: ${JSON.stringify(message)}\n\n`);
};
const genTitle = async ({ model, text, response }) => {
let title = 'New Chat';
try {
title = await titleConvo({
model,
message: text,
response: JSON.stringify(response?.text)
});
} catch (e) {
console.error(e);
console.log('There was an issue generating title, see error above');
}
console.log('CONVERSATION TITLE', title);
return title;
};
const createOnProgress = () => {
let i = 0;
let tokens = '';
@ -56,4 +73,4 @@ const handleText = async (input) => {
return text;
};
module.exports = { handleError, sendMessage, createOnProgress, handleText };
module.exports = { handleError, sendMessage, createOnProgress, genTitle, handleText };