From 9a263b6afb9eaa10746b4690d15cdb1fe36c0fa7 Mon Sep 17 00:00:00 2001 From: beabigegg Date: Sun, 17 Aug 2025 17:58:54 +0800 Subject: [PATCH] fix5 --- __pycache__/app.cpython-312.pyc | Bin 6003 -> 6063 bytes app.py | 1 + frontend/src/pages/ProcessingPage.jsx | 9 ++++++++- tasks.py | 2 +- 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/__pycache__/app.cpython-312.pyc b/__pycache__/app.cpython-312.pyc index a409ade695d098390a5dce5a382f6a73efa55cbc..f92d23f0ae8e276736d66795dd68106014da91f4 100644 GIT binary patch delta 854 zcmYk2&r4KM6vy9v^Xtto=Q%$ee~ns0Xr`khsVU}+4l3xFX^UF)8t1+6;rx(0Pf$Xz zFbKk+4ivQL$07(vDjC|jXwj}kwFqhmi~fM1#-Lr@GsA!f?&p5bIrrRi?I{rWt?qZ}t2wAzYd+PG_iC;X63 zkj-$wc1vZ4_qyxwoDY*4%(@-b+FdbktJD(M*0;bl{e5d~p09*92;9*JV92m&at>o7 z7yKk%UUtL2;h({?CCFZQV?5j7lj~CT>4ps*;bfoePc^2SHuPm(5A~*-)`n^~xe<0u z{iF#j!U@uhbOfroTf$W$x4@{-N?Ku2=ycjvve}eGmE?LdrKn;J$HBJnrQcTc&Cg9o zrpG2@GZ&@t$U-C5pI}A0xtFm>PC1FUW5-( zhwvA^nLiTJ2YXg^^dyV46WY$U9L{-@b}$yLW7&+RtZ560+%j!rkuV+*82)Z?e|X;9 zQ(~H<-EhgaZas}Mgy?_+TTqNLnKLkKa^D?;G*oceAMj)l@{SPWSH~nd4na}v8pM(_ z3`I*qPOBMdHK))bQ7X^D3tE^}oYNqnTI7wm4v29iIo*9 zv$UP9+yvZpg@w<@dS3N?Xd8gHu7_4XXJ|a+>;~gub3t`46B2??o^j(e-kpGe_g)mM z%WY^UQ$?Mc(dZ1u;)o?g5OHLt%q8!k(QbuSFO5Q%>3?YtRm*JEzs>i|q2iQ@` AGynhq delta 724 zcmYk2OK1~e5XX0Rv&kmgbvLg~+9WnAwGV6_O>HcewpOXHA{4y%jM3fD&^+q5Dd?e4 zp@JZI=o|zQ#e*oMpc3@vMbL{UZ<32%yo%Ba-t?P>iUaf8|2Ol^?0oYgy_wQJYMM{r z_Av2eVg8l&2z)v}N!&M|<7;?~B`Mb}Hi7O4f+aQl9mTb4L&nR}VcBhYnj&72#${zk zftNDiBjP3LmTO~IQ^oVHx1eKGzUwh2sF@$XgDF}8d?){rgKLTv!Vm7LSlBWvJ=NHX z1cDW|B9(YGvEtg+QA~PntKI*m>A{ztJjBpY`XNr#6Fa#(N(rppIIHY|UR+QP;4|ej zsJQCw7MYH3ypz2FJ^~98LWD5EBt!_&R?zneAcx=7^7J5&3d|_w zVc%$+Ejo)V$s;4&9fjlfn(#{$z1dB!1vZTLx^AkYBvXU|3}}7E5iT8>V^#R7kF!+k zxOQKJJbuwLoQ81%_To9CoXS(lA&$1MXjRL#!m?wtHrSnUs6mojXCyX;Ka4(@ZJGWN zfFV2?X!+Ar>MfQFtiIf^9hN~Y7=vae zzH7`bHta%iX^CCsX^p!xh3|v8_0R(~BFOPAp-Xme#amB9ivTI~o5$RzsAB;ynCmlC zv)!Bxan+W}wFWy)u{lDCu#fQH+W4`pOjPUEa>brx*D)O#b { const intervalId = setInterval(async () => { try { const updatedTask = await pollTaskStatus(task.status_url); - // Pass the full task object to avoid stale closures + + // FIX: Check for inner 'Error' status even if Celery task state is 'SUCCESS' + if (updatedTask.state === 'SUCCESS' && updatedTask.info?.status === 'Error') { + handleTaskUpdate(key, { ...task, state: 'FAILURE', info: { ...task.info, error: updatedTask.info.error || 'Task failed with an unknown error.' } }); + clearInterval(intervalId); + return; + } + handleTaskUpdate(key, { ...task, ...updatedTask }); if (['SUCCESS', 'FAILURE', 'REVOKED'].includes(updatedTask.state)) { clearInterval(intervalId); diff --git a/tasks.py b/tasks.py index 5b7e311..c204708 100644 --- a/tasks.py +++ b/tasks.py @@ -88,7 +88,7 @@ def run_dify_stt_chat_app(file_id: str) -> str: f"{DIFY_API_BASE_URL}/chat-messages", headers={"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}, json=payload, - timeout=600 + timeout=1800 ) print("Dify STT API Response:", r.status_code, r.text) # DEBUG PRINT