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