bugfix
This commit is contained in:
parent
a3b23a348f
commit
220d816993
@ -107,13 +107,15 @@ async def write_llmusage(llm, userid, usage, params_kw, outdata, sor):
|
|||||||
"use_time": timestampstr(),
|
"use_time": timestampstr(),
|
||||||
"userid": userid,
|
"userid": userid,
|
||||||
"transno": params_kw.transno,
|
"transno": params_kw.transno,
|
||||||
|
"evalvalue": 0,
|
||||||
"useages": usages,
|
"useages": usages,
|
||||||
"ioinfo": json.dumps({
|
"ioinfo": json.dumps({
|
||||||
"input": params_kw,
|
"input": params_kw,
|
||||||
"output": outdata
|
"output": outdata
|
||||||
})
|
}, ensure_ascii=False)
|
||||||
}
|
}
|
||||||
await sor.C('llmusage', d)
|
await sor.C('llmusage', d)
|
||||||
|
return d
|
||||||
|
|
||||||
async def uapi_request(request, llm, sor, params_kw=None):
|
async def uapi_request(request, llm, sor, params_kw=None):
|
||||||
env = request._run_ns.copy()
|
env = request._run_ns.copy()
|
||||||
@ -125,6 +127,7 @@ async def uapi_request(request, llm, sor, params_kw=None):
|
|||||||
userid = await get_owner_userid(sor, llm)
|
userid = await get_owner_userid(sor, llm)
|
||||||
outlines = []
|
outlines = []
|
||||||
txt = ''
|
txt = ''
|
||||||
|
luid = getID()
|
||||||
try:
|
try:
|
||||||
t1 = time.time()
|
t1 = time.time()
|
||||||
t2 = t1
|
t2 = t1
|
||||||
@ -155,6 +158,7 @@ async def uapi_request(request, llm, sor, params_kw=None):
|
|||||||
if d.get('content'):
|
if d.get('content'):
|
||||||
txt = txt + d['content']
|
txt = txt + d['content']
|
||||||
yield_it = True
|
yield_it = True
|
||||||
|
d['llmusageid'] = luid
|
||||||
outlines.append(d)
|
outlines.append(d)
|
||||||
yield json.dumps(d) + '\n'
|
yield json.dumps(d) + '\n'
|
||||||
usage = outlines[-1].get('usage',{})
|
usage = outlines[-1].get('usage',{})
|
||||||
@ -170,17 +174,16 @@ async def uapi_request(request, llm, sor, params_kw=None):
|
|||||||
if params_kw.negitive_prompt:
|
if params_kw.negitive_prompt:
|
||||||
cnt += len(params_kw.negitive_promot)
|
cnt += len(params_kw.negitive_promot)
|
||||||
usage['input_tokens'] = len
|
usage['input_tokens'] = len
|
||||||
await write_llmusage(llm, callerid, usage, params_kw, outlines, sor)
|
u = await write_llmusage(luid, llm, callerid, usage, params_kw, outlines, sor)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
exception(f'{e=},{format_exc()}')
|
exception(f'{e=},{format_exc()}')
|
||||||
estr = erase_apikey(e)
|
estr = erase_apikey(e)
|
||||||
outlines.append({"error": "ERROR:{estr}", "status": "FAILED" })
|
|
||||||
yield f'{{"error": "ERROR:{estr}", "status": "SUCCEEDED" }}\n'
|
outlines.append({f"error": "ERROR:{estr}", "status": "FAILED" ,"llmusageid": luid})
|
||||||
await write_llmusage(llm, callerid, None, params_kw, outlines, sor)
|
yield f'{{"error": "ERROR:{estr}", "status": "SUCCEEDED" ,"llmusageid": luid}}\n'
|
||||||
|
await write_llmusage(luid, llm, callerid, None, params_kw, outlines, sor)
|
||||||
return
|
return
|
||||||
|
|
||||||
debug(f'{txt=}')
|
|
||||||
|
|
||||||
async def sync_uapi_request(request, llm, sor, params_kw=None):
|
async def sync_uapi_request(request, llm, sor, params_kw=None):
|
||||||
env = request._run_ns.copy()
|
env = request._run_ns.copy()
|
||||||
if not params_kw:
|
if not params_kw:
|
||||||
@ -193,6 +196,7 @@ async def sync_uapi_request(request, llm, sor, params_kw=None):
|
|||||||
b = None
|
b = None
|
||||||
d = None
|
d = None
|
||||||
t1 = t2 = t3 = time.time()
|
t1 = t2 = t3 = time.time()
|
||||||
|
luid = getID()
|
||||||
try:
|
try:
|
||||||
|
|
||||||
b = await uapi.call(llm.upappid, llm.apiname, userid, params=params_kw)
|
b = await uapi.call(llm.upappid, llm.apiname, userid, params=params_kw)
|
||||||
@ -202,17 +206,18 @@ async def sync_uapi_request(request, llm, sor, params_kw=None):
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
exception(f'{e=},{format_exc()}')
|
exception(f'{e=},{format_exc()}')
|
||||||
estr = erase_apikey(e)
|
estr = erase_apikey(e)
|
||||||
yield f'{{"error": "ERROR:{estr}", "status": "SUCCEEDED" }}\n'
|
yield f'{{"error": "ERROR:{estr}", "status": "SUCCEEDED", "llmusageid": luid }}\n'
|
||||||
outlines.append({"error": "ERROR:{estr}", "status": "FAILED" })
|
outlines.append({"error": "ERROR:{estr}", "status": "FAILED" ,"llmusageid": luid})
|
||||||
await write_llmusage(llm, callerid, None, params_kw, outlines, sor)
|
await write_llmusage(luid, llm, callerid, None, params_kw, outlines, sor)
|
||||||
return
|
return
|
||||||
|
d['llmusageid'] = luid
|
||||||
outlines.append(d)
|
outlines.append(d)
|
||||||
t2 = t3 = time.time()
|
t2 = t3 = time.time()
|
||||||
usage = d.get('usage', {})
|
usage = d.get('usage', {})
|
||||||
usage['response_time'] = t2 - t1
|
usage['response_time'] = t2 - t1
|
||||||
usage['finish_time'] = t3 - t1
|
usage['finish_time'] = t3 - t1
|
||||||
await write_llmusage(llm, callerid, usage, params_kw, outlines, sor)
|
await write_llmusage(luid, llm, callerid, usage, params_kw, outlines, sor)
|
||||||
debug(f'finished:{b}')
|
b = json.dumps(d, ensure_ascii=False)
|
||||||
yield b
|
yield b
|
||||||
|
|
||||||
async def async_uapi_request(request, llm, sor, params_kw=None):
|
async def async_uapi_request(request, llm, sor, params_kw=None):
|
||||||
@ -226,14 +231,15 @@ async def async_uapi_request(request, llm, sor, params_kw=None):
|
|||||||
outlines = []
|
outlines = []
|
||||||
b = None
|
b = None
|
||||||
t1 = t2 = t3 = time.time()
|
t1 = t2 = t3 = time.time()
|
||||||
|
luid = getID()
|
||||||
try:
|
try:
|
||||||
b = await uapi.call(llm.upappid, llm.apiname, userid, params=params_kw)
|
b = await uapi.call(llm.upappid, llm.apiname, userid, params=params_kw)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
exception(f'{e=},{format_exc()}')
|
exception(f'{e=},{format_exc()}')
|
||||||
estr = erase_apikey(e)
|
estr = erase_apikey(e)
|
||||||
yield f'{{"error": "ERROR:{estr}", "status": "SUCCEEDED" }}\n'
|
yield f'{{"error": "ERROR:{estr}", "status": "SUCCEEDED" ,"llmusageid": luid}}\n'
|
||||||
outlines.append({"error": "ERROR:{estr}", "status": "FAILED" })
|
outlines.append({"error": "ERROR:{estr}", "status": "FAILED" ,"llmusageid": luid})
|
||||||
await write_llmusage(llm, callerid, None, params_kw, outlines, sor)
|
await write_llmusage(luid, llm, callerid, None, params_kw, outlines, sor)
|
||||||
return
|
return
|
||||||
if isinstance(b, bytes):
|
if isinstance(b, bytes):
|
||||||
b = b.decode('utf-8')
|
b = b.decode('utf-8')
|
||||||
@ -251,25 +257,27 @@ async def async_uapi_request(request, llm, sor, params_kw=None):
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
exception(f'{e=},{format_exc()}')
|
exception(f'{e=},{format_exc()}')
|
||||||
estr = erase_apikey(e)
|
estr = erase_apikey(e)
|
||||||
yield f'{{"error": "ERROR:{estr}", "status": "SUCCEEDED" }}\n'
|
yield f'{{"error": "ERROR:{estr}", "status": "SUCCEEDED" ,"llmusageid": luid}}\n'
|
||||||
outlines.append({"error": "ERROR:{estr}", "status": "FAILED" })
|
outlines.append({"error": "ERROR:{estr}", "status": "FAILED" ,"llmusageid": luid})
|
||||||
await write_llmusage(llm, callerid, None, params_kw, outlines, sor)
|
await write_llmusage(luid, llm, callerid, None, params_kw, outlines, sor)
|
||||||
return
|
return
|
||||||
|
|
||||||
if isinstance(b, bytes):
|
if isinstance(b, bytes):
|
||||||
b = b.decode('utf-8')
|
b = b.decode('utf-8')
|
||||||
|
d = json.loads(b)
|
||||||
|
rzt = DictObject(**json.loads(b))
|
||||||
|
rzt['llmusageid'] = luid
|
||||||
|
b = json.dumps(rzt, ensure_ascii=False)
|
||||||
b = ''.join(b.split('\n'))
|
b = ''.join(b.split('\n'))
|
||||||
debug(f'response line = {b}')
|
debug(f'response line = {b}')
|
||||||
rzt = DictObject(**json.loads(b))
|
|
||||||
yield b + '\n'
|
yield b + '\n'
|
||||||
if not rzt.status or rzt.status == 'FAILED':
|
if not rzt.status or rzt.status == 'FAILED':
|
||||||
debug(f'{b=} return error')
|
debug(f'{b=} return error')
|
||||||
yield f'{{"error": "ERROR:upapp return failed", "status": "SUCCEEDED" }}\n'
|
yield f'{{"error": "ERROR:upapp return failed", "status": "SUCCEEDED" ,"llmusageid": luid}}\n'
|
||||||
outlines.append({"error": "ERROR:{estr}", "status": "FAILED" })
|
outlines.append({"error": "ERROR:{estr}", "status": "FAILED" ,"llmusageid": luid})
|
||||||
await write_llmusage(llm, callerid, None, params_kw, outlines, sor)
|
await write_llmusage(luid, llm, callerid, None, params_kw, outlines, sor)
|
||||||
return
|
return
|
||||||
if rzt.status == 'SUCCEEDED':
|
if rzt.status == 'SUCCEEDED':
|
||||||
debug(f'{b=} return successed')
|
|
||||||
await asyncio.sleep(1)
|
await asyncio.sleep(1)
|
||||||
d = rzt
|
d = rzt
|
||||||
outlines.append(d)
|
outlines.append(d)
|
||||||
@ -277,7 +285,7 @@ async def async_uapi_request(request, llm, sor, params_kw=None):
|
|||||||
t3 = time.time()
|
t3 = time.time()
|
||||||
usage['response_time'] = t2 - t1
|
usage['response_time'] = t2 - t1
|
||||||
usage['finish_time'] = t3 -t1
|
usage['finish_time'] = t3 -t1
|
||||||
await write_llmusage(llm, callerid, usage, params_kw, outlines, sor)
|
await write_llmusage(luid, llm, callerid, usage, params_kw, outlines, sor)
|
||||||
break
|
break
|
||||||
period = llm.query_period or 30
|
period = llm.query_period or 30
|
||||||
await asyncio.sleep(period)
|
await asyncio.sleep(period)
|
||||||
|
|||||||
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user