mirror of
https://github.com/danswer-ai/danswer.git
synced 2025-04-13 22:39:36 +02:00
improve regeneration state
This commit is contained in:
parent
f842e15d64
commit
568f927b9b
@ -115,11 +115,12 @@ import {
|
||||
CHROME_MESSAGE,
|
||||
SUBMIT_MESSAGE_TYPES,
|
||||
} from "@/lib/extension/constants";
|
||||
import AssistantModal from "../assistants/mine/AssistantModal";
|
||||
|
||||
import { getSourceMetadata } from "@/lib/sources";
|
||||
import { UserSettingsModal } from "./modal/UserSettingsModal";
|
||||
import { AlignStartVertical } from "lucide-react";
|
||||
import { AgenticMessage } from "./message/AgenticMessage";
|
||||
import AssistantModal from "../assistants/mine/AssistantModal";
|
||||
|
||||
const TEMP_USER_MESSAGE_ID = -1;
|
||||
const TEMP_ASSISTANT_MESSAGE_ID = -2;
|
||||
@ -730,10 +731,20 @@ export function ChatPage({
|
||||
newState: RegenerationState | null,
|
||||
sessionId?: string | null
|
||||
) => {
|
||||
const newRegenerationState = new Map(regenerationState);
|
||||
newRegenerationState.set(
|
||||
sessionId !== undefined && sessionId != null
|
||||
? sessionId
|
||||
: currentSessionId(),
|
||||
newState
|
||||
);
|
||||
|
||||
setRegenerationState((prevState) => {
|
||||
const newRegenerationState = new Map(prevState);
|
||||
newRegenerationState.set(
|
||||
sessionId !== undefined ? sessionId : currentSessionId(),
|
||||
sessionId !== undefined && sessionId != null
|
||||
? sessionId
|
||||
: currentSessionId(),
|
||||
newState
|
||||
);
|
||||
return newRegenerationState;
|
||||
@ -747,6 +758,7 @@ export function ChatPage({
|
||||
const currentRegenerationState = (): RegenerationState | null => {
|
||||
return regenerationState.get(currentSessionId()) || null;
|
||||
};
|
||||
|
||||
const [canContinue, setCanContinue] = useState<Map<string | null, boolean>>(
|
||||
new Map([[null, false]])
|
||||
);
|
||||
@ -1172,12 +1184,12 @@ export function ChatPage({
|
||||
const messageToResend = messageHistory.find(
|
||||
(message) => message.messageId === messageIdToResend
|
||||
);
|
||||
|
||||
updateRegenerationState(
|
||||
regenerationRequest
|
||||
? { regenerating: true, finalMessageIndex: messageIdToResend || 0 }
|
||||
: null
|
||||
);
|
||||
if (messageIdToResend) {
|
||||
updateRegenerationState(
|
||||
{ regenerating: true, finalMessageIndex: messageIdToResend },
|
||||
currentSessionId()
|
||||
);
|
||||
}
|
||||
const messageMap = currentMessageMap(completeMessageDetail);
|
||||
const messageToResendParent =
|
||||
messageToResend?.parentMessageId !== null &&
|
||||
@ -2494,6 +2506,15 @@ export function ChatPage({
|
||||
const messageMap = currentMessageMap(
|
||||
completeMessageDetail
|
||||
);
|
||||
|
||||
if (
|
||||
currentRegenerationState()?.finalMessageIndex &&
|
||||
currentRegenerationState()?.finalMessageIndex! <
|
||||
message.messageId
|
||||
) {
|
||||
return <></>;
|
||||
}
|
||||
|
||||
const messageReactComponentKey = `${i}-${currentSessionId()}`;
|
||||
const parentMessage = message.parentMessageId
|
||||
? messageMap.get(message.parentMessageId)
|
||||
@ -2515,7 +2536,13 @@ export function ChatPage({
|
||||
>
|
||||
<HumanMessage
|
||||
stopGenerating={stopGenerating}
|
||||
content={message.message}
|
||||
content={
|
||||
message.message +
|
||||
`final message index is ${
|
||||
currentRegenerationState()
|
||||
?.finalMessageIndex
|
||||
}`
|
||||
}
|
||||
files={message.files}
|
||||
messageId={message.messageId}
|
||||
onEdit={(editedContent) => {
|
||||
|
Loading…
x
Reference in New Issue
Block a user