|
@@ -191,6 +191,22 @@ class LLMNode(BaseNode[LLMNodeData]):
|
|
|
# deduct quota
|
|
|
self.deduct_llm_quota(tenant_id=self.tenant_id, model_instance=model_instance, usage=usage)
|
|
|
break
|
|
|
+ outputs = {"text": result_text, "usage": jsonable_encoder(usage), "finish_reason": finish_reason}
|
|
|
+
|
|
|
+ yield RunCompletedEvent(
|
|
|
+ run_result=NodeRunResult(
|
|
|
+ status=WorkflowNodeExecutionStatus.SUCCEEDED,
|
|
|
+ inputs=node_inputs,
|
|
|
+ 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,
|
|
|
+ )
|
|
|
+ )
|
|
|
except LLMNodeError as e:
|
|
|
yield RunCompletedEvent(
|
|
|
run_result=NodeRunResult(
|
|
@@ -211,23 +227,6 @@ class LLMNode(BaseNode[LLMNodeData]):
|
|
|
)
|
|
|
)
|
|
|
|
|
|
- outputs = {"text": result_text, "usage": jsonable_encoder(usage), "finish_reason": finish_reason}
|
|
|
-
|
|
|
- yield RunCompletedEvent(
|
|
|
- run_result=NodeRunResult(
|
|
|
- status=WorkflowNodeExecutionStatus.SUCCEEDED,
|
|
|
- inputs=node_inputs,
|
|
|
- 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,
|
|
|
- )
|
|
|
- )
|
|
|
-
|
|
|
def _invoke_llm(
|
|
|
self,
|
|
|
node_data_model: ModelConfig,
|