diff --git a/llmage/asyncinference.py b/llmage/asyncinference.py index 7f52623..4b87848 100644 --- a/llmage/asyncinference.py +++ b/llmage/asyncinference.py @@ -207,16 +207,20 @@ async def query_task_status(request, upappid, apiname, luid, userid, taskid): else: changed.amount = 0 changed.cost = 0 - await add_new_llmusage_output(luid, changed) - if llmusage.accounting_status != 'accounted' and changed.amount > 0.00001: llmusage.amount = changed.amount llmusage.cost = changed.cost - try: - await llm_accounting(request, llmusage) - except Exception as e: - debug(f'{changed=} accounting failed,{e=} ') - if changed.status in ['FAILED', 'SUCCEEDED']: + await add_new_llmusage_output(luid, changed) + if changed.status == 'FAILED': return + if changed.status == 'SUCCEEDED': + if llmusage.accounting_status != 'accounted' \ + and changed.amount > 0.00001: + try: + await llm_accounting(request, llmusage) + except Exception as e: + debug(f'{changed=} accounting failed,{e=} ') + return + await asyncio.sleep(llm.query_period or 30) debug(f'{llm.query_period=} seconds will retry, {changed.status=}')