@@ -609,55 +609,72 @@ async def _run_async_impl(
609609 and part .function_response .id
610610 in ctx .session .state ['long_running_ids' ]
611611 and 'result' in part .function_response .response
612- and not part .function_response .response ['result' ].isError
613612 ):
614- raw_result = part .function_response .response ['result' ]
615- results = json .loads (raw_result .content [0 ].text )
616- logger .info (
617- f"[SubmitCoreCalculationMCPLlmAgent] results = { results } "
618- )
619- origin_job_id = results ['job_id' ]
620- job_name = part .function_response .name
621- job_status = results ['status' ]
622- if not ctx .session .state ['dflow' ]:
623- bohr_job_id = results ['extra_info' ]['bohr_job_id' ]
624- frontend_result = BohrJobInfo (
625- origin_job_id = origin_job_id ,
626- job_name = job_name ,
627- job_status = job_status ,
628- job_id = bohr_job_id ,
629- agent_name = ctx .agent .parent_agent .parent_agent .name ,
630- ).model_dump (mode = 'json' )
631- else :
632- workflow_id = results ['extra_info' ]['workflow_id' ]
633- workflow_uid = results ['extra_info' ]['workflow_uid' ]
634- workflow_url = results ['extra_info' ]['workflow_link' ]
635- frontend_result = DFlowJobInfo (
636- origin_job_id = origin_job_id ,
637- job_name = job_name ,
638- job_status = job_status ,
639- workflow_id = workflow_id ,
640- workflow_uid = workflow_uid ,
641- workflow_url = workflow_url ,
642- ).model_dump (mode = 'json' )
643-
644- update_long_running_jobs = copy .deepcopy (
645- ctx .session .state ['long_running_jobs' ]
646- )
647- update_long_running_jobs [origin_job_id ] = frontend_result
648- yield update_state_event (
649- ctx ,
650- state_delta = {
651- 'long_running_jobs' : update_long_running_jobs ,
652- 'render_job_list' : True ,
653- 'render_job_id' : ctx .session .state ['render_job_id' ]
654- + [origin_job_id ],
655- 'long_running_jobs_count' : ctx .session .state [
656- 'long_running_jobs_count'
613+ if not part .function_response .response ['result' ].isError :
614+ raw_result = part .function_response .response ['result' ]
615+ results = json .loads (raw_result .content [0 ].text )
616+ logger .info (
617+ f"[SubmitCoreCalculationMCPLlmAgent] results = { results } "
618+ )
619+ origin_job_id = results ['job_id' ]
620+ job_name = part .function_response .name
621+ job_status = results ['status' ]
622+ if not ctx .session .state ['dflow' ]:
623+ bohr_job_id = results ['extra_info' ]['bohr_job_id' ]
624+ frontend_result = BohrJobInfo (
625+ origin_job_id = origin_job_id ,
626+ job_name = job_name ,
627+ job_status = job_status ,
628+ job_id = bohr_job_id ,
629+ agent_name = ctx .agent .parent_agent .parent_agent .name ,
630+ ).model_dump (mode = 'json' )
631+ else :
632+ workflow_id = results ['extra_info' ]['workflow_id' ]
633+ workflow_uid = results ['extra_info' ]['workflow_uid' ]
634+ workflow_url = results ['extra_info' ][
635+ 'workflow_link'
657636 ]
658- + 1 ,
659- },
660- )
637+ frontend_result = DFlowJobInfo (
638+ origin_job_id = origin_job_id ,
639+ job_name = job_name ,
640+ job_status = job_status ,
641+ workflow_id = workflow_id ,
642+ workflow_uid = workflow_uid ,
643+ workflow_url = workflow_url ,
644+ ).model_dump (mode = 'json' )
645+
646+ update_long_running_jobs = copy .deepcopy (
647+ ctx .session .state ['long_running_jobs' ]
648+ )
649+ update_long_running_jobs [origin_job_id ] = (
650+ frontend_result
651+ )
652+ yield update_state_event (
653+ ctx ,
654+ state_delta = {
655+ 'long_running_jobs' : update_long_running_jobs ,
656+ 'render_job_list' : True ,
657+ 'render_job_id' : ctx .session .state [
658+ 'render_job_id'
659+ ]
660+ + [origin_job_id ],
661+ 'long_running_jobs_count' : ctx .session .state [
662+ 'long_running_jobs_count'
663+ ]
664+ + 1 ,
665+ },
666+ )
667+ else :
668+ # 提交报错同样+1,避免幻觉 card
669+ yield update_state_event (
670+ ctx ,
671+ state_delta = {
672+ 'long_running_jobs_count' : ctx .session .state [
673+ 'long_running_jobs_count'
674+ ]
675+ + 1 ,
676+ },
677+ )
661678 # END
662679
663680 # Send Normal LlmResponse to Frontend, function_call -> function_response -> Llm_response
0 commit comments