mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-17 08:50:15 +01:00
🪙 fix: Streaming Response Token Issue (#3323)
* chore: use NEW_CONVO constant * fix: token object assign issue
This commit is contained in:
parent
326069d7a6
commit
5ef71a7a36
7 changed files with 5 additions and 7 deletions
|
|
@ -112,7 +112,6 @@ const AskController = async (req, res, next, initializeClient, addTitle) => {
|
||||||
progressCallback,
|
progressCallback,
|
||||||
progressOptions: {
|
progressOptions: {
|
||||||
res,
|
res,
|
||||||
text,
|
|
||||||
// parentMessageId: overrideParentMessageId || userMessageId,
|
// parentMessageId: overrideParentMessageId || userMessageId,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -119,7 +119,6 @@ const EditController = async (req, res, next, initializeClient) => {
|
||||||
progressCallback,
|
progressCallback,
|
||||||
progressOptions: {
|
progressOptions: {
|
||||||
res,
|
res,
|
||||||
text,
|
|
||||||
// parentMessageId: overrideParentMessageId || userMessageId,
|
// parentMessageId: overrideParentMessageId || userMessageId,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -69,8 +69,10 @@ const createAbortController = (req, res, getAbortData, getReqData) => {
|
||||||
*/
|
*/
|
||||||
const onStart = (userMessage, responseMessageId) => {
|
const onStart = (userMessage, responseMessageId) => {
|
||||||
sendMessage(res, { message: userMessage, created: true });
|
sendMessage(res, { message: userMessage, created: true });
|
||||||
|
|
||||||
const abortKey = userMessage?.conversationId ?? req.user.id;
|
const abortKey = userMessage?.conversationId ?? req.user.id;
|
||||||
const prevRequest = abortControllers.get(abortKey);
|
const prevRequest = abortControllers.get(abortKey);
|
||||||
|
|
||||||
if (prevRequest && prevRequest?.abortController) {
|
if (prevRequest && prevRequest?.abortController) {
|
||||||
const data = prevRequest.abortController.getAbortData();
|
const data = prevRequest.abortController.getAbortData();
|
||||||
getReqData({ userMessage: data?.userMessage });
|
getReqData({ userMessage: data?.userMessage });
|
||||||
|
|
@ -81,6 +83,7 @@ const createAbortController = (req, res, getAbortData, getReqData) => {
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
abortControllers.set(abortKey, { abortController, ...endpointOption });
|
abortControllers.set(abortKey, { abortController, ...endpointOption });
|
||||||
|
|
||||||
res.on('finish', function () {
|
res.on('finish', function () {
|
||||||
|
|
|
||||||
|
|
@ -195,7 +195,6 @@ router.post(
|
||||||
progressCallback,
|
progressCallback,
|
||||||
progressOptions: {
|
progressOptions: {
|
||||||
res,
|
res,
|
||||||
text,
|
|
||||||
// parentMessageId: overrideParentMessageId || userMessageId,
|
// parentMessageId: overrideParentMessageId || userMessageId,
|
||||||
plugins,
|
plugins,
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -168,7 +168,6 @@ router.post(
|
||||||
progressCallback,
|
progressCallback,
|
||||||
progressOptions: {
|
progressOptions: {
|
||||||
res,
|
res,
|
||||||
text,
|
|
||||||
plugin,
|
plugin,
|
||||||
// parentMessageId: overrideParentMessageId || userMessageId,
|
// parentMessageId: overrideParentMessageId || userMessageId,
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -19,8 +19,7 @@ const createOnProgress = ({ generation = '', onProgress: _onProgress }) => {
|
||||||
|
|
||||||
const basePayload = Object.assign({}, base, { text: tokens || '' });
|
const basePayload = Object.assign({}, base, { text: tokens || '' });
|
||||||
|
|
||||||
const progressCallback = (partial, { res, text, ...rest }) => {
|
const progressCallback = (chunk, { res, ...rest }) => {
|
||||||
let chunk = partial === text ? '' : partial;
|
|
||||||
basePayload.text = basePayload.text + chunk;
|
basePayload.text = basePayload.text + chunk;
|
||||||
|
|
||||||
const payload = Object.assign({}, basePayload, rest);
|
const payload = Object.assign({}, basePayload, rest);
|
||||||
|
|
|
||||||
|
|
@ -107,7 +107,7 @@ export default function useChatFunctions({
|
||||||
const intermediateId = overrideUserMessageId ?? v4();
|
const intermediateId = overrideUserMessageId ?? v4();
|
||||||
parentMessageId = parentMessageId || latestMessage?.messageId || Constants.NO_PARENT;
|
parentMessageId = parentMessageId || latestMessage?.messageId || Constants.NO_PARENT;
|
||||||
|
|
||||||
if (conversationId == 'new') {
|
if (conversationId == Constants.NEW_CONVO) {
|
||||||
parentMessageId = Constants.NO_PARENT;
|
parentMessageId = Constants.NO_PARENT;
|
||||||
currentMessages = [];
|
currentMessages = [];
|
||||||
conversationId = null;
|
conversationId = null;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue