diff --git a/llmage/asyncinference.py b/llmage/asyncinference.py index f4176ed..8059f85 100644 --- a/llmage/asyncinference.py +++ b/llmage/asyncinference.py @@ -67,7 +67,11 @@ async def async_uapi_request(request, llm, sor, start_timestamp = time.time() if llm.callbackurl: params_kw.callbackurl = llm.callbackurl - b = await uapi.call(llm.upappid, llm.apiname, userid, params=params_kw) + + b = None + try: + b = await uapi.call(llm.upappid, llm.apiname, userid, params=params_kw) + except Exception as e: if isinstance(b, bytes): b = b.decode('utf-8') debug(f'task sumbited:{b}') diff --git a/llmage/init.py b/llmage/init.py index 7534cd4..7a758e6 100644 --- a/llmage/init.py +++ b/llmage/init.py @@ -18,6 +18,7 @@ from .llmclient import ( from .accounting import checkCustomerBalance from .asyncinference import ( get_asynctask_status, + query_task_status, get_today_asynctask_list ) @@ -25,6 +26,7 @@ def load_llmage(): env = ServerEnv() env.get_today_asynctask_list = get_today_asynctask_list env.get_asynctask_status = get_asynctask_status + env.query_task_status = query_task_status env.get_llm = get_llm env.b64media2url = b64media2url env.hex2base64 = hex2base64 diff --git a/wwwroot/grap_task_status.dspy b/wwwroot/grap_task_status.dspy new file mode 100644 index 0000000..a5dc378 --- /dev/null +++ b/wwwroot/grap_task_status.dspy @@ -0,0 +1,18 @@ +taskid = params_kw.taskid +async with get_sor_context(request._run_ns, 'llmage') as sor: + recs = await sor.R('llmusage', {'taskid': taskid}) + if len(recs) == 0: + e = Exception(f'{taskid=} not found in llmusage') + exception(f'{e}') + raise e + llmusage = recs[0] +request, upappid, apinames, luid, userid, taskid + recs = await sor.R('llm', {'id': llmusage.llmid}) + if len(recs) == 0: + e = Exception(f'{llmusage.llmid=} not found in llm') + exception(f'{e}') + raise e + llm = recs[0] + x = await query_task_status(request, llm.upappid, llm.query_apiname, + llmusage.id, llm.ownerid, taskid) +