fix(llm): deduct LLM quota after processing usage in invoke result
Signed-off-by: -LAN- <laipz8200@outlook.com>
This commit is contained in:
parent
1e73f63ff8
commit
f97f82a3e4
@ -185,6 +185,8 @@ class LLMNode(BaseNode[LLMNodeData]):
|
|||||||
result_text = event.text
|
result_text = event.text
|
||||||
usage = event.usage
|
usage = event.usage
|
||||||
finish_reason = event.finish_reason
|
finish_reason = event.finish_reason
|
||||||
|
# deduct quota
|
||||||
|
self.deduct_llm_quota(tenant_id=self.tenant_id, model_instance=model_instance, usage=usage)
|
||||||
break
|
break
|
||||||
except LLMNodeError as e:
|
except LLMNodeError as e:
|
||||||
yield RunCompletedEvent(
|
yield RunCompletedEvent(
|
||||||
@ -241,16 +243,7 @@ class LLMNode(BaseNode[LLMNodeData]):
|
|||||||
)
|
)
|
||||||
|
|
||||||
# handle invoke result
|
# handle invoke result
|
||||||
generator = self._handle_invoke_result(invoke_result=invoke_result)
|
return self._handle_invoke_result(invoke_result=invoke_result)
|
||||||
|
|
||||||
usage = LLMUsage.empty_usage()
|
|
||||||
for event in generator:
|
|
||||||
yield event
|
|
||||||
if isinstance(event, ModelInvokeCompletedEvent):
|
|
||||||
usage = event.usage
|
|
||||||
|
|
||||||
# deduct quota
|
|
||||||
self.deduct_llm_quota(tenant_id=self.tenant_id, model_instance=model_instance, usage=usage)
|
|
||||||
|
|
||||||
def _handle_invoke_result(self, invoke_result: LLMResult | Generator) -> Generator[NodeEvent, None, None]:
|
def _handle_invoke_result(self, invoke_result: LLMResult | Generator) -> Generator[NodeEvent, None, None]:
|
||||||
if isinstance(invoke_result, LLMResult):
|
if isinstance(invoke_result, LLMResult):
|
||||||
|
Loading…
Reference in New Issue
Block a user