mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-17 17:00:15 +01:00
fix: debounce title request and handle error with default title
This commit is contained in:
parent
96ca783517
commit
2fd50c99b8
7 changed files with 70 additions and 100 deletions
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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 };
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue