feat(message-handling): fix repeated first token, think tag handling

closes #889
This commit is contained in:
ItzCrazyKns
2025-10-02 17:15:54 +05:30
parent d611ddaab9
commit 5cc11ac0bf

View File

@@ -399,6 +399,7 @@ export const ChatProvider = ({
(m, j) => (m, j) =>
j > i && j > i &&
m.role === 'source' && m.role === 'source' &&
m.sources &&
(nextUserMessageIndex === -1 || j < nextUserMessageIndex), (nextUserMessageIndex === -1 || j < nextUserMessageIndex),
) as SourceMessage | undefined; ) as SourceMessage | undefined;
@@ -417,7 +418,7 @@ export const ChatProvider = ({
const closeThinkTag = const closeThinkTag =
processedMessage.match(/<\/think>/g)?.length || 0; processedMessage.match(/<\/think>/g)?.length || 0;
if (openThinkTag > closeThinkTag) { if (openThinkTag && !closeThinkTag) {
processedMessage += '</think> <a> </a>'; processedMessage += '</think> <a> </a>';
} }
} }
@@ -426,7 +427,11 @@ export const ChatProvider = ({
thinkingEnded = true; thinkingEnded = true;
} }
if (sourceMessage && sourceMessage.sources.length > 0) { if (
sourceMessage &&
sourceMessage.sources &&
sourceMessage.sources.length > 0
) {
processedMessage = processedMessage.replace( processedMessage = processedMessage.replace(
citationRegex, citationRegex,
(_, capturedContent: string) => { (_, capturedContent: string) => {
@@ -635,8 +640,8 @@ export const ChatProvider = ({
}, },
]); ]);
added = true; added = true;
} setMessageAppeared(true);
} else {
setMessages((prev) => setMessages((prev) =>
prev.map((message) => { prev.map((message) => {
if ( if (
@@ -649,9 +654,8 @@ export const ChatProvider = ({
return message; return message;
}), }),
); );
}
recievedMessage += data.data; recievedMessage += data.data;
setMessageAppeared(true);
} }
if (data.type === 'messageEnd') { if (data.type === 'messageEnd') {