Merge remote-tracking branch 'origin/main' into feat-refactor-0.1.1

This commit is contained in:
Wentao Lyu 2023-03-29 00:19:46 +08:00
commit 5467d550e5
4 changed files with 28 additions and 7 deletions

13
.github/FUNDING.yml vendored Normal file
View file

@ -0,0 +1,13 @@
# These are supported funding model platforms
github: [danny-avila]
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']

View file

@ -2,7 +2,7 @@ const express = require('express');
const crypto = require('crypto'); const crypto = require('crypto');
const router = express.Router(); const router = express.Router();
const { titleConvo, askBing } = require('../../app/'); const { titleConvo, askBing } = require('../../app/');
const { saveBingMessage, getConvoTitle, saveConvo, updateConvo } = require('../../models'); const { saveBingMessage, getConvoTitle, saveConvo } = require('../../models');
const { handleError, sendMessage, createOnProgress, handleText } = require('./handlers'); const { handleError, sendMessage, createOnProgress, handleText } = require('./handlers');
router.post('/', async (req, res) => { 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, // 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. // but in this situation, don't change the conversationId, but create new convo.
if (conversationId != userMessage.conversationId && isNewConversation) if (conversationId != userMessage.conversationId && isNewConversation)
await updateConvo( await saveConvo(
req?.session?.user?.username, req?.session?.user?.username,
{ {
conversationId: conversationId, conversationId: conversationId,
@ -148,7 +148,7 @@ const ask = async ({
response.text = await handleText(response, true); response.text = await handleText(response, true);
await saveBingMessage(response); await saveBingMessage(response);
await updateConvo(req?.session?.user?.username, { model, chatGptLabel: null, promptPrefix: null, ...convo, ...response }); await saveConvo(req?.session?.user?.username, { model, chatGptLabel: null, promptPrefix: null, ...convo, ...response });
sendMessage(res, { sendMessage(res, {
title: await getConvoTitle(req?.session?.user?.username, conversationId), title: await getConvoTitle(req?.session?.user?.username, conversationId),
@ -161,9 +161,11 @@ const ask = async ({
if (userParentMessageId == '00000000-0000-0000-0000-000000000000') { if (userParentMessageId == '00000000-0000-0000-0000-000000000000') {
const title = await titleConvo({ model, text, response }); const title = await titleConvo({ model, text, response });
await updateConvo( await saveConvo(
req?.session?.user?.username, req?.session?.user?.username,
{ {
...convo,
...response,
conversationId, conversationId,
title title
} }
@ -185,4 +187,4 @@ const ask = async ({
} }
}; };
module.exports = router; module.exports = router;

View file

@ -20,11 +20,17 @@ router.get('/:conversationId', async (req, res) => {
router.post('/clear', async (req, res) => { router.post('/clear', async (req, res) => {
let filter = {}; let filter = {};
const { conversationId } = req.body.arg; const { conversationId, source } = req.body.arg;
if (conversationId) { if (conversationId) {
filter = { conversationId }; filter = { conversationId };
} }
console.log('source:', source);
if (source === 'button' && !conversationId) {
return res.status(200).send('No conversationId provided');
}
try { try {
const dbResponse = await deleteConvos(req?.session?.user?.username, filter); const dbResponse = await deleteConvos(req?.session?.user?.username, filter);
res.status(201).send(dbResponse); res.status(201).send(dbResponse);

View file

@ -16,7 +16,7 @@ export default function DeleteButton({ conversationId, renaming, cancelHandler,
retainView(); retainView();
}); });
const clickHandler = () => trigger({ conversationId }); const clickHandler = () => trigger({ conversationId, source: 'button' });
const handler = renaming ? cancelHandler : clickHandler; const handler = renaming ? cancelHandler : clickHandler;
return ( return (