feat: gen title by sperate api call

feat:

fix: rename of convo should based on real request.
This commit is contained in:
Wentao Lyu 2023-03-13 14:04:47 +08:00
parent 8773878be2
commit 9f8e9cb091
8 changed files with 65 additions and 28 deletions

View file

@ -10,7 +10,7 @@ const {
customClient,
detectCode
} = require('../../app/');
const { getConvo, saveMessage, deleteMessagesSince, deleteMessages, saveConvo } = require('../../models');
const { getConvo, saveMessage, getConvoTitle, saveConvo } = require('../../models');
const { handleError, sendMessage } = require('./handlers');
router.use('/bing', askBing);
@ -156,6 +156,7 @@ router.post('/', async (req, res) => {
await saveMessage(gptResponse);
await saveConvo(gptResponse);
sendMessage(res, {
title: await getConvoTitle(conversationId),
final: true,
requestMessage: userMessage,
responseMessage: gptResponse

View file

@ -2,7 +2,7 @@ const express = require('express');
const crypto = require('crypto');
const router = express.Router();
const { titleConvo, getCitations, citeText, askBing } = require('../../app/');
const { saveMessage, deleteMessages, deleteMessagesSince, saveConvo } = require('../../models');
const { saveMessage, getConvoTitle, saveConvo } = require('../../models');
const { handleError, sendMessage } = require('./handlers');
const citationRegex = /\[\^\d+?\^]/g;
@ -11,7 +11,7 @@ router.post('/', async (req, res) => {
if (text.length === 0) {
return handleError(res, 'Prompt empty or too short');
}
const conversationId = oldConversationId || crypto.randomUUID();
const userMessageId = messageId;
@ -98,6 +98,7 @@ router.post('/', async (req, res) => {
await saveMessage(response);
await saveConvo(response);
sendMessage(res, {
title: await getConvoTitle(conversationId),
final: true,
requestMessage: userMessage,
responseMessage: gptResponse

View file

@ -2,7 +2,7 @@ const express = require('express');
const crypto = require('crypto');
const router = express.Router();
const { titleConvo, getCitations, citeText, askSydney } = require('../../app/');
const { saveMessage, deleteMessages, saveConvo, deleteMessagesSince, getConvoTitle } = require('../../models');
const { saveMessage, saveConvo, getConvoTitle } = require('../../models');
const { handleError, sendMessage } = require('./handlers');
const citationRegex = /\[\^\d+?\^]/g;
@ -11,7 +11,7 @@ router.post('/', async (req, res) => {
if (text.length === 0) {
return handleError(res, 'Prompt empty or too short');
}
const conversationId = oldConversationId || crypto.randomUUID();
const userMessageId = messageId;
@ -108,6 +108,7 @@ router.post('/', async (req, res) => {
await saveMessage(response);
await saveConvo(response);
sendMessage(res, {
title: await getConvoTitle(conversationId),
final: true,
requestMessage: userMessage,
responseMessage: gptResponse

View file

@ -1,12 +1,38 @@
const express = require('express');
const router = express.Router();
const { titleConvo } = require('../../app/');
const { getConvo, saveConvo, getConvoTitle } = require('../../models');
const { getConvos, 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 getConvos(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]
const title = convo.jailbreakConversationId
? await getConvoTitle(conversationId)
: await titleConvo({
model: convo?.model,
message: firstMessage?.text,
response: JSON.stringify(secondMessage?.text || '')
});
await saveConvo({
conversationId,
title
})
res.status(200).send(title);
});
router.post('/clear', async (req, res) => {
let filter = {};
const { conversationId } = req.body.arg;