Very minor robustification (#3926)

* very minor robustification

* robust
This commit is contained in:
pablonyx
2025-02-06 11:55:38 -08:00
committed by GitHub
parent 2fc41cd5df
commit 3bc4e0d12f
5 changed files with 10 additions and 18 deletions

View File

@@ -110,6 +110,7 @@ def decompose_orig_question(
),
writer,
)
# dispatches custom events for subquestion tokens, adding in subquestion ids.
streamed_tokens = dispatch_separated(
model.stream(msg),

View File

@@ -305,8 +305,10 @@ def dispatch_separated(
if sep in content:
sub_question_parts = content.split(sep)
_dispatch_nonempty(sub_question_parts[0], dispatch_event, num)
if sep_callback:
sep_callback(num)
num += 1
_dispatch_nonempty(
"".join(sub_question_parts[1:]).strip(), dispatch_event, num
@@ -315,6 +317,9 @@ def dispatch_separated(
_dispatch_nonempty(content, dispatch_event, num)
streamed_tokens.append(content)
if sep_callback:
sep_callback(num)
return streamed_tokens

View File

@@ -218,6 +218,7 @@ export interface SubQuestionDetail extends BaseQuestionIdentifier {
sub_queries?: SubQueryDetail[] | null;
context_docs?: { top_documents: OnyxDocument[] } | null;
is_complete?: boolean;
is_stopped?: boolean;
}
export interface SubQueryDetail {
@@ -255,6 +256,7 @@ export const constructSubQuestions = (
);
if (subQuestion) {
subQuestion.is_complete = true;
subQuestion.is_stopped = true;
}
} else if ("top_documents" in newDetail) {
const { level, level_question_num, top_documents } = newDetail;

View File

@@ -134,7 +134,7 @@ export const useStreamingMessages = (
if (nextIndex <= sq.question.length) {
dynSQ.question = sq.question.slice(0, nextIndex);
p.questionCharIndex = nextIndex;
if (nextIndex >= sq.question.length) {
if (nextIndex >= sq.question.length && sq.is_stopped) {
p.questionDone = true;
}
didStreamQuestion = true;

View File

@@ -481,9 +481,7 @@ const SubQuestionsDisplay: React.FC<SubQuestionsDisplayProps> = ({
subQuestions,
() => {},
() => {
setTimeout(() => {
setShowSummarizing(true);
}, PHASE_MIN_MS * 3);
setShowSummarizing(true);
}
);
const { dynamicSubQuestions: dynamicSecondLevelQuestions } =
@@ -549,20 +547,6 @@ const SubQuestionsDisplay: React.FC<SubQuestionsDisplayProps> = ({
}
}, [memoizedSubQuestions]);
useEffect(() => {
const allSubQuestionsAnswered =
memoizedSubQuestions.length > 0 &&
memoizedSubQuestions.every(
(subQuestion) => subQuestion?.question.length > 5
);
if (allSubQuestionsAnswered) {
setTimeout(() => {
setShowSummarizing(true);
}, PHASE_MIN_MS * 0.75);
}
}, [memoizedSubQuestions, finishedGenerating]);
useEffect(() => {
if (showSummarizing && streamedText !== "Summarize findings") {
const fullText = "Summarize findings";