From 1d9e1896ce1a44bac93c660f2f0a691fbfb69bfb Mon Sep 17 00:00:00 2001 From: HuangHai <10402852@qq.com> Date: Mon, 25 Aug 2025 14:40:05 +0800 Subject: [PATCH] 'commit' --- .../__pycache__/Txt2Img.cpython-310.pyc | Bin 0 -> 4416 bytes dsLightRag/Routes/MjRoute.py | 67 ++ .../Routes/__pycache__/Ggb.cpython-310.pyc | Bin 3060 -> 3439 bytes .../__pycache__/MjRoute.cpython-310.pyc | Bin 0 -> 4059 bytes .../Suno/__pycache__/sunoUtil.cpython-310.pyc | Bin 5636 -> 5629 bytes .../Util/__pycache__/GGBUtil.cpython-310.pyc | Bin 8983 -> 9297 bytes dsLightRag/static/{ => Midjourney}/mj.html | 749 ++++++++++-------- 7 files changed, 473 insertions(+), 343 deletions(-) create mode 100644 dsLightRag/Midjourney/__pycache__/Txt2Img.cpython-310.pyc create mode 100644 dsLightRag/Routes/__pycache__/MjRoute.cpython-310.pyc rename dsLightRag/static/{ => Midjourney}/mj.html (53%) diff --git a/dsLightRag/Midjourney/__pycache__/Txt2Img.cpython-310.pyc b/dsLightRag/Midjourney/__pycache__/Txt2Img.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d2d6c1bc7ac77256c5e6c314846fd8d6056c7562 GIT binary patch literal 4416 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 literal 0 HcmV?d00001 diff --git a/dsLightRag/Routes/MjRoute.py b/dsLightRag/Routes/MjRoute.py index 2dfd3897..fbf4653b 100644 --- a/dsLightRag/Routes/MjRoute.py +++ b/dsLightRag/Routes/MjRoute.py @@ -11,6 +11,7 @@ from pydantic import BaseModel from Midjourney.Txt2Img import Txt2Img from Config import Config import asyncio +import threading from fastapi.responses import StreamingResponse # 创建路由路由器 @@ -71,6 +72,72 @@ async def submit_imagine(request: ImagineRequest, background_tasks: BackgroundTa # 存储Midjourney任务ID TASK_STATUS[task_id]["midjourney_task_id"] = midjourney_task_id + + # 添加后台任务轮询状态 + def poll_task_status_background(task_id, midjourney_task_id): + max_retries = 1000 + retry_count = 0 + retry_interval = 5 # 5秒 + + while retry_count < max_retries: + try: + # 查询任务状态 + result = Txt2Img.query_task_status(midjourney_task_id) + + # 更新任务状态 + if result.get("status") == "SUCCESS": + TASK_STATUS[task_id] = { + "status": "completed", + "image_url": result.get("imageUrl"), + "progress": 100, + "error": None, + "midjourney_task_id": midjourney_task_id + } + logger.info(f"任务 {task_id} 完成,图片URL: {result.get('imageUrl')}") + break + elif result.get("status") == "FAILED": + TASK_STATUS[task_id] = { + "status": "failed", + "image_url": None, + "progress": 0, + "error": result.get("errorMsg", "未知错误"), + "midjourney_task_id": midjourney_task_id + } + logger.error(f"任务 {task_id} 失败: {result.get('errorMsg', '未知错误')}") + break + else: + # 更新进度 + progress = result.get("progress", 0) + TASK_STATUS[task_id]["progress"] = progress + TASK_STATUS[task_id]["status"] = "processing" + logger.info(f"任务 {task_id} 处理中,进度: {progress}%") + + # 增加重试计数 + retry_count += 1 + + # 等待重试间隔 + time.sleep(retry_interval) + + except Exception as e: + logger.error(f"轮询任务 {task_id} 状态失败: {str(e)}") + TASK_STATUS[task_id]["error"] = str(e) + time.sleep(retry_interval) + + if retry_count >= max_retries: + logger.error(f"任务 {task_id} 超时") + TASK_STATUS[task_id] = { + "status": "failed", + "image_url": None, + "progress": 0, + "error": "任务处理超时", + "midjourney_task_id": midjourney_task_id + } + + # 使用线程运行后台任务 + thread = threading.Thread(target=poll_task_status_background, args=(task_id, midjourney_task_id)) + thread.daemon = True + thread.start() + return {"task_id": task_id} except Exception as e: logger.error(f"提交文生图请求失败: {str(e)}") diff --git a/dsLightRag/Routes/__pycache__/Ggb.cpython-310.pyc b/dsLightRag/Routes/__pycache__/Ggb.cpython-310.pyc index a5d2575df3e4e1da019e868799809b4e28ef636c..8159237ec646aa13ea3d1b634efa434e187daa7d 100644 GIT binary patch delta 1393 zcmZ`(-)kII6u#%q@0s1nHrcFkv+AbAm}#5DrcEkAdmxo5T-5lK9K0eiilHx0jFj`W}ny;00UoRWJ0R(MI$t+vG zCAnI%%Z~3zu9Xtyq@R>rNACJVKnfZ&m{|m7ZBai}pxq;d;U4%Sg;Y1q>>e-Nh~cIEGkCI^6B}X9&Lh22QKVEb5JwAmpCPhojrtI3%Jm{VYsIm-LqF z>HI;tp;!p{WOS%cEYIMY9~a;Wm=Iq0t zdxp$f{KK%8@-pcaft#^KT@1ujx_5GV)9lZbb%JNb^`rgPkp9MTQt$$E|CL}_8hwR|% zA!IORPZL5ydReMw`mU6-MR&;ac=Ax~YRu|EzgxK0JEQ|`I#248r(_4$$R_rOKi$vJ zKrgd*6>+3Nj;7Hd%n|R&mh%6UuTC!#Z1@Z|+`Q5Nyb>Vw2^4BE7dry&LAPXy|Jbn9 z(A{#^$ORO&39myX-G6T2wY;#_KVJd^Qg;V1vWmrJ;(K`S<=Y_Mk?4dqm98c5D)Q6+ z-oaA-5AdSrtoi9-v_Hv55c&NGp2ANFF3kL-fKi0=JQM9$xdo4MF&ff=e0;zio)i25 z0b(}zLjooQ9F2am#^>{bir1l^;9+E#U`iMsLHLyNM+KJ^

>%rtJLuWi$q2kZ4PV zF&LvM$S5jgad=WdTl$}_k%n0?Tl5b7J?GFni_vTLV@=QLt2iNY%Bpfe6|oehW3^UW zXR#*mw3Hqj8<%)xy;9^F`f=S5ek^Ye}>*R$r;&f6pA!eo0xk-xc9DA1_x~ UtyFjd2ZjWB1e2H${ov&O24Lte;s5{u delta 1161 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 vAEI=s) zod5iObZE>B3#4i=!O1gs~!%sy+*KoIqW95vybk zTd6Zf*t=nCmyPnbxt#Pd!ss&(=y+(7V^_l#YL^kaD%q(!W;AGxSPW~zbhQT{rz zAj$E?=NLt781vYs|N$x>SA^@uHFCP_+V6S1{Q}09({cm*fPn* z%-)y($C=sNf5F*j<}yiVOaiYgV}!h>oMT+-*ER=^4|3+Z8c!xUq^G9U*#|F3OpfD& z@yyyDukqyiP*X!k3rSUJD>?OsX=woF z)SNcn|E&GBsJ7j&-J8rVteN&kWwWHc?_7;1JH4XCceSsk)c8hrW>6i9Ww+-cyS6^9 zE)8S{er~GH?x(c1ouKN^|P?rf;>Sv9$D zjL*!(jE!V&0|bB@tPrrZnZaCm#7Yc(sdBCK4Ci7_WwW%lf>jziFMy9v7YF^4%>02{ z0e`SV_IHTNwX*V)>`lX^!T_HEFRihXC@ZP#1!brafJEUE5dJA~SqTr&FtJIEL#{Z+-)!=nCv!1cebRmT(w0-`MgA4z@S%JXqo4<+aMi z5T}ieHK|{ZU)EC(w8=$%XIGnBWTjxZ;Uj5I4AOL7dq56#`UtBAE%N~QFe@8$5LYX-;MV zNYY>`l#eR6ah>Auo^`%Fm`mQ1_!s3jaH2#1M6uLAIh$1dW6*TD&dckq;dix*tBBFld}2ddrx diff --git a/dsLightRag/static/mj.html b/dsLightRag/static/Midjourney/mj.html similarity index 53% rename from dsLightRag/static/mj.html rename to dsLightRag/static/Midjourney/mj.html index 0492ac14..e9d0df9a 100644 --- a/dsLightRag/static/mj.html +++ b/dsLightRag/static/Midjourney/mj.html @@ -359,367 +359,430 @@ - \ No newline at end of file