diff --git a/llmage/llmclient.py b/llmage/llmclient.py index 6789ec9..db90953 100644 --- a/llmage/llmclient.py +++ b/llmage/llmclient.py @@ -13,6 +13,15 @@ from uapi.appapi import UAPI, sor_get_callerid, sor_get_uapi from ahserver.serverenv import get_serverenv from ahserver.filestorage import FileStorage +def erase_apikey(e): + e = str(e) + ss = e.split('Bearer ') + for i, c in enumerate(ss[1]): + if c in ['"', "'"]: + newb = "XXXXXXXX" + ss[1][i:] + break + return ss[0] + 'Bearer ' + newb + async def get_llmcatelogs(): db = DBPools() dbname = get_serverenv('get_module_dbname')('llmage') @@ -119,7 +128,8 @@ async def uapi_request(request, llm, sor): yield json.dumps(d) + '\n' except Exception as e: exception(f'{e=},{format_exc()}') - yield f'{{"error": "ERROR:{e=}"}}\n' + estr = erase_apikey(e) + yield f'{{"error": "ERROR:{estr}", "status": "SUCCEEDED" }}\n' return debug(f'{txt=}') @@ -135,7 +145,8 @@ async def sync_uapi_request(request, llm, sor): b = await uapi.call(llm.upappid, llm.apiname, userid, params=env.params_kw) except Exception as e: exception(f'{e=},{format_exc()}') - yield f'{{"error": "ERROR:{e=}"}}\n' + estr = erase_apikey(e) + yield f'{{"error": "ERROR:{estr}", "status": "SUCCEEDED" }}\n' return if isinstance(b, bytes): b = b.decode('utf-8') @@ -153,7 +164,8 @@ async def async_uapi_request(request, llm, sor): b = await uapi.call(llm.upappid, llm.apiname, userid, params=env.params_kw) except Exception as e: exception(f'{e=},{format_exc()}') - yield f'{{"error": "ERROR:{e=}"}}\n' + estr = erase_apikey(e) + yield f'{{"error": "ERROR:{estr}", "status": "SUCCEEDED" }}\n' return if isinstance(b, bytes): b = b.decode('utf-8') @@ -161,7 +173,7 @@ async def async_uapi_request(request, llm, sor): d = DictObject(**json.loads(b)) if not d.get('context'): debug(f'{b} error') - yield '{"error":"server return no taskid"}\n' + yield '{"error":"server return no taskid", "status": "SUCCEEDED" }\n' return uapi = UAPI(request, sor=sor) apinames = [ name.strip() for name in llm.query_apiname.split(',') ] @@ -172,7 +184,8 @@ async def async_uapi_request(request, llm, sor): b = await uapi.call(llm.upappid, apiname, userid, params=d.context) except Exception as e: exception(f'{e=},{format_exc()}') - yield f'{{"error": "ERROR:{e=}"}}\n' + estr = erase_apikey(e) + yield f'{{"error": "ERROR:{estr}", "status": "SUCCEEDED" }}\n' break if isinstance(b, bytes): @@ -183,7 +196,7 @@ async def async_uapi_request(request, llm, sor): yield b + '\n' if not rzt.status or rzt.status == 'FAILED': debug(f'{b=} return error') - yield f'{{"error": "ERROR:{e=}"}}\n' + yield f'{{"error": "ERROR:upapp return failed", "status": "SUCCEEDED" }}\n' return if rzt.status == 'SUCCEEDED': debug(f'{b=} return successed')