🔄 refactor: Consolidate Ask/Edit Controllers (#1365)

* refactor(Ask/Edit): consolidate ask/edit controllers between the main modules and openAI controllers to reduce repetition of code and increase reusability

* fix(winston/logger): circular dependency issue

* fix(config/scripts): fix script imports

* refactor(indexSync): make not configured message an info log message

* chore: create a rollup script for api/server/index.js to check circular dependencies

* chore: bump @keyv/redis
This commit is contained in:
Danny Avila 2023-12-15 15:47:40 -05:00 committed by GitHub
parent 0958db3825
commit 509b1e5c63
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
20 changed files with 299 additions and 368 deletions

View file

@ -15,6 +15,7 @@ const EditController = async (req, res, next, initializeClient) => {
parentMessageId = null,
overrideParentMessageId = null,
} = req.body;
logger.debug('[EditController]', {
text,
generation,
@ -22,6 +23,7 @@ const EditController = async (req, res, next, initializeClient) => {
conversationId,
...endpointOption,
});
let metadata;
let userMessage;
let promptTokens;
@ -48,6 +50,7 @@ const EditController = async (req, res, next, initializeClient) => {
generation,
onProgress: ({ text: partialText }) => {
const currentTimestamp = Date.now();
if (currentTimestamp - lastSavedTimestamp > saveDelay) {
lastSavedTimestamp = currentTimestamp;
saveMessage({
@ -56,6 +59,7 @@ const EditController = async (req, res, next, initializeClient) => {
conversationId,
parentMessageId: overrideParentMessageId ?? userMessageId,
text: partialText,
model: endpointOption.modelOptions.model,
unfinished: true,
cancelled: false,
isEdited: true,
@ -69,19 +73,20 @@ const EditController = async (req, res, next, initializeClient) => {
}
},
});
const getAbortData = () => ({
conversationId,
messageId: responseMessageId,
sender,
parentMessageId: overrideParentMessageId ?? userMessageId,
text: getPartialText(),
userMessage,
promptTokens,
});
const { abortController, onStart } = createAbortController(req, res, getAbortData);
try {
const getAbortData = () => ({
conversationId,
messageId: responseMessageId,
sender,
parentMessageId: overrideParentMessageId ?? userMessageId,
text: getPartialText(),
userMessage,
promptTokens,
});
const { abortController, onStart } = createAbortController(req, res, getAbortData);
const { client } = await initializeClient({ req, res, endpointOption });
let response = await client.sendMessage(text, {
@ -93,25 +98,22 @@ const EditController = async (req, res, next, initializeClient) => {
parentMessageId,
responseMessageId,
overrideParentMessageId,
...endpointOption,
onProgress: progressCallback.call(null, {
res,
text,
parentMessageId: overrideParentMessageId ?? userMessageId,
}),
getReqData,
onStart,
addMetadata,
abortController,
onProgress: progressCallback.call(null, {
res,
text,
parentMessageId: overrideParentMessageId || userMessageId,
}),
});
if (metadata) {
response = { ...response, ...metadata };
}
if (overrideParentMessageId) {
response.parentMessageId = overrideParentMessageId;
}
await saveMessage({ ...response, user });
sendMessage(res, {
title: await getConvoTitle(user, conversationId),
@ -121,11 +123,6 @@ const EditController = async (req, res, next, initializeClient) => {
responseMessage: response,
});
res.end();
await saveMessage({ ...response, user });
await saveMessage(userMessage);
// TODO: add title service
} catch (error) {
const partialText = getPartialText();
handleAbortError(res, req, error, {