From 4b0a4a2741ca9710a0c8b0d502d5e881d51ef5d6 Mon Sep 17 00:00:00 2001 From: pablodanswer Date: Thu, 23 Jan 2025 16:25:54 -0800 Subject: [PATCH] k --- web/src/app/chat/ChatPage.tsx | 8 +++++ web/src/app/chat/interfaces.ts | 1 + web/src/app/chat/lib.tsx | 4 ++- web/src/app/chat/message/AgenticMessage.tsx | 15 ++++++--- web/src/app/chat/refinmentBadge.tsx | 36 +++++++++++++++++++++ web/src/lib/search/interfaces.ts | 4 +++ 6 files changed, 62 insertions(+), 6 deletions(-) diff --git a/web/src/app/chat/ChatPage.tsx b/web/src/app/chat/ChatPage.tsx index b462093e1..4c0108ec9 100644 --- a/web/src/app/chat/ChatPage.tsx +++ b/web/src/app/chat/ChatPage.tsx @@ -79,6 +79,7 @@ import { SubQueryPiece, SubQuestionPiece, AgentAnswerPiece, + RefinedAnswerImprovement, } from "@/lib/search/interfaces"; import { buildFilters } from "@/lib/search/utils"; import { SettingsContext } from "@/components/settings/SettingsProvider"; @@ -1248,6 +1249,7 @@ export function ChatPage({ let second_level_generating: boolean = false; let finalMessage: BackendMessage | null = null; let toolCall: ToolCallMetadata | null = null; + let isImprovement: boolean | undefined = undefined; let initialFetchDetails: null | { user_message_id: number; @@ -1398,6 +1400,10 @@ export function ChatPage({ } } + if (Object.hasOwn(packet, "refined_answer_improvement")) { + isImprovement = (packet as RefinedAnswerImprovement) + .refined_answer_improvement; + } // Continuously refine the sub_questions based on the packets that we receive if ( Object.hasOwn(packet, "stop_reason") && @@ -1567,6 +1573,7 @@ export function ChatPage({ }, { is_generating: is_generating, + isImprovement: isImprovement, messageId: initialFetchDetails.assistant_message_id!, message: error || answer, second_level_message: second_level_answer, @@ -2607,6 +2614,7 @@ export function ChatPage({ {message.sub_questions && message.sub_questions.length > 0 ? ( - {!secondLevelAssistantMessage && - // !isGenerating && + {isImprovement == null && subQuestions && subQuestions.length > 0 ? ( - ) : ( - secondLevelAssistantMessage && ( + ) : secondLevelAssistantMessage ? ( + isImprovement ? ( + ) : ( + ) + ) : ( + <> )} diff --git a/web/src/app/chat/refinmentBadge.tsx b/web/src/app/chat/refinmentBadge.tsx index 2f1f107ab..ed6c36040 100644 --- a/web/src/app/chat/refinmentBadge.tsx +++ b/web/src/app/chat/refinmentBadge.tsx @@ -464,3 +464,39 @@ export default function RefinemenetBadge({ // // ); // } + +// import React, { useState, useEffect } from "react"; + +export const NoNewAnswerMessage = () => { + const [opacity, setOpacity] = useState(1); + + useEffect(() => { + const fadeOutDuration = 2000; // 2 seconds + const intervalDuration = 50; // Update every 50ms for smooth fade + const opacityStep = intervalDuration / fadeOutDuration; + + const fadeOutInterval = setInterval(() => { + setOpacity((prevOpacity) => { + const newOpacity = prevOpacity - opacityStep; + return newOpacity > 0 ? newOpacity : 0; + }); + }, intervalDuration); + + const timer = setTimeout(() => { + clearInterval(fadeOutInterval); + }, fadeOutDuration); + + return () => { + clearInterval(fadeOutInterval); + clearTimeout(timer); + }; + }, []); + + if (opacity === 0) return null; + + return ( +
+ No new answer found... +
+ ); +}; diff --git a/web/src/lib/search/interfaces.ts b/web/src/lib/search/interfaces.ts index 3badfa85a..b2f50c532 100644 --- a/web/src/lib/search/interfaces.ts +++ b/web/src/lib/search/interfaces.ts @@ -24,6 +24,10 @@ export interface ProSearchPacket { level_question_nr: number; } +export interface RefinedAnswerImprovement { + refined_answer_improvement: boolean; +} + export interface AgentAnswerPiece { answer_piece: string; level: number;