mirror of
https://github.com/danswer-ai/danswer.git
synced 2025-10-09 12:47:13 +02:00
Fix issue where a message that errors out creates a bad state
This commit is contained in:
@@ -18,6 +18,7 @@ import {
|
|||||||
createChatSession,
|
createChatSession,
|
||||||
getCitedDocumentsFromMessage,
|
getCitedDocumentsFromMessage,
|
||||||
getHumanAndAIMessageFromMessageNumber,
|
getHumanAndAIMessageFromMessageNumber,
|
||||||
|
getLastSuccessfulMessageId,
|
||||||
handleAutoScroll,
|
handleAutoScroll,
|
||||||
handleChatFeedback,
|
handleChatFeedback,
|
||||||
nameChatSession,
|
nameChatSession,
|
||||||
@@ -205,12 +206,11 @@ export const Chat = ({
|
|||||||
let error: string | null = null;
|
let error: string | null = null;
|
||||||
let finalMessage: BackendMessage | null = null;
|
let finalMessage: BackendMessage | null = null;
|
||||||
try {
|
try {
|
||||||
|
const lastSuccessfulMessageId =
|
||||||
|
getLastSuccessfulMessageId(currMessageHistory);
|
||||||
for await (const packetBunch of sendMessage({
|
for await (const packetBunch of sendMessage({
|
||||||
message: currMessage,
|
message: currMessage,
|
||||||
parentMessageId:
|
parentMessageId: lastSuccessfulMessageId,
|
||||||
currMessageHistory.length > 0
|
|
||||||
? currMessageHistory[currMessageHistory.length - 1].messageId
|
|
||||||
: null,
|
|
||||||
chatSessionId: currChatSessionId,
|
chatSessionId: currChatSessionId,
|
||||||
// if search-only set prompt to null to tell backend to not give an answer
|
// if search-only set prompt to null to tell backend to not give an answer
|
||||||
promptId:
|
promptId:
|
||||||
|
@@ -266,3 +266,16 @@ export function groupSessionsByDateRange(chatSessions: ChatSession[]) {
|
|||||||
|
|
||||||
return groups;
|
return groups;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function getLastSuccessfulMessageId(messageHistory: Message[]) {
|
||||||
|
const lastSuccessfulMessage = messageHistory
|
||||||
|
.slice()
|
||||||
|
.reverse()
|
||||||
|
.find(
|
||||||
|
(message) =>
|
||||||
|
message.type === "assistant" &&
|
||||||
|
message.messageId !== -1 &&
|
||||||
|
message.messageId !== null
|
||||||
|
);
|
||||||
|
return lastSuccessfulMessage ? lastSuccessfulMessage?.messageId : null;
|
||||||
|
}
|
||||||
|
@@ -34,9 +34,9 @@ export const searchRequestStreamed = async ({
|
|||||||
const filters = buildFilters(sources, documentSets, timeRange);
|
const filters = buildFilters(sources, documentSets, timeRange);
|
||||||
|
|
||||||
const threadMessage = {
|
const threadMessage = {
|
||||||
message: query,
|
message: query,
|
||||||
sender: null,
|
sender: null,
|
||||||
role: "user"
|
role: "user",
|
||||||
};
|
};
|
||||||
|
|
||||||
const response = await fetch("/api/query/stream-answer-with-quote", {
|
const response = await fetch("/api/query/stream-answer-with-quote", {
|
||||||
|
Reference in New Issue
Block a user