fix(llm/nodes.py): Ensure that the output returns without any exceptions (#14880)

pull/12417/head
LeanDeR 1 year ago committed by GitHub
parent cef49da576
commit 4f6a4f244c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -191,40 +191,39 @@ class LLMNode(BaseNode[LLMNodeData]):
# deduct quota # deduct quota
self.deduct_llm_quota(tenant_id=self.tenant_id, model_instance=model_instance, usage=usage) self.deduct_llm_quota(tenant_id=self.tenant_id, model_instance=model_instance, usage=usage)
break break
except LLMNodeError as e: outputs = {"text": result_text, "usage": jsonable_encoder(usage), "finish_reason": finish_reason}
yield RunCompletedEvent( yield RunCompletedEvent(
run_result=NodeRunResult( run_result=NodeRunResult(
status=WorkflowNodeExecutionStatus.FAILED, status=WorkflowNodeExecutionStatus.SUCCEEDED,
error=str(e),
inputs=node_inputs, inputs=node_inputs,
process_data=process_data, process_data=process_data,
error_type=type(e).__name__, outputs=outputs,
metadata={
NodeRunMetadataKey.TOTAL_TOKENS: usage.total_tokens,
NodeRunMetadataKey.TOTAL_PRICE: usage.total_price,
NodeRunMetadataKey.CURRENCY: usage.currency,
},
llm_usage=usage,
) )
) )
except Exception as e: except LLMNodeError as e:
yield RunCompletedEvent( yield RunCompletedEvent(
run_result=NodeRunResult( run_result=NodeRunResult(
status=WorkflowNodeExecutionStatus.FAILED, status=WorkflowNodeExecutionStatus.FAILED,
error=str(e), error=str(e),
inputs=node_inputs, inputs=node_inputs,
process_data=process_data, process_data=process_data,
error_type=type(e).__name__,
) )
) )
except Exception as e:
outputs = {"text": result_text, "usage": jsonable_encoder(usage), "finish_reason": finish_reason}
yield RunCompletedEvent( yield RunCompletedEvent(
run_result=NodeRunResult( run_result=NodeRunResult(
status=WorkflowNodeExecutionStatus.SUCCEEDED, status=WorkflowNodeExecutionStatus.FAILED,
error=str(e),
inputs=node_inputs, inputs=node_inputs,
process_data=process_data, process_data=process_data,
outputs=outputs,
metadata={
NodeRunMetadataKey.TOTAL_TOKENS: usage.total_tokens,
NodeRunMetadataKey.TOTAL_PRICE: usage.total_price,
NodeRunMetadataKey.CURRENCY: usage.currency,
},
llm_usage=usage,
) )
) )

Loading…
Cancel
Save