| # 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 | ||||
| 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: | except LLMNodeError as e: | ||||
| yield RunCompletedEvent( | yield RunCompletedEvent( | ||||
| run_result=NodeRunResult( | run_result=NodeRunResult( | ||||
| ) | ) | ||||
| ) | ) | ||||
| 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( | def _invoke_llm( | ||||
| self, | self, | ||||
| node_data_model: ModelConfig, | node_data_model: ModelConfig, |