bugfix
This commit is contained in:
parent
3659c75097
commit
b5da4b902d
@ -169,13 +169,8 @@ where a.llmid = b.id
|
|||||||
# debug(f'{sql=}, {ns=}, {len(recs)=}')
|
# debug(f'{sql=}, {ns=}, {len(recs)=}')
|
||||||
for r in recs:
|
for r in recs:
|
||||||
if r.usages is None:
|
if r.usages is None:
|
||||||
io = json.loads(r.ioinfo)
|
output = await get_lastoutput(r.ioinfo)
|
||||||
if len(io['output']) == 0:
|
r.usages = output.get('usage')
|
||||||
llmusage.accounting_status = 'failed'
|
|
||||||
await sor.U('llmusage', {'id': llmusage.id, 'accounting_status': 'failed'})
|
|
||||||
debug(f'{len(io["output"])} is 0')
|
|
||||||
continue
|
|
||||||
r.usages = json.dumps(io['output'][-1].get('usage'))
|
|
||||||
if r.usages is None:
|
if r.usages is None:
|
||||||
llmusage.accounting_status = 'failed'
|
llmusage.accounting_status = 'failed'
|
||||||
await sor.U('llmusage', {'id': llmusage.id, 'accounting_status': 'failed'})
|
await sor.U('llmusage', {'id': llmusage.id, 'accounting_status': 'failed'})
|
||||||
|
|||||||
@ -35,11 +35,8 @@ async def get_asynctask_status(taskid):
|
|||||||
recs = await sor.R('llmusage', {'taskid': taskid})
|
recs = await sor.R('llmusage', {'taskid': taskid})
|
||||||
if recs:
|
if recs:
|
||||||
r = recs[0]
|
r = recs[0]
|
||||||
io = json.loads(r.ioinfo)
|
output = await get_lastoutput(r.ioinfo)
|
||||||
d = io.get('output', {})
|
return output
|
||||||
if isinstance(d, list):
|
|
||||||
return d[-1]
|
|
||||||
return d
|
|
||||||
return {
|
return {
|
||||||
'taskid': taskid,
|
'taskid': taskid,
|
||||||
'status': 'FAILED',
|
'status': 'FAILED',
|
||||||
@ -129,14 +126,6 @@ async def modify_llmusage_status(llmusage):
|
|||||||
'status': llmusage.status
|
'status': llmusage.status
|
||||||
})
|
})
|
||||||
|
|
||||||
def get_llmusage_last_output(r):
|
|
||||||
io = json.loads(r.ioinfo)
|
|
||||||
outs = io.get('output', [])
|
|
||||||
if len(outs) == 0:
|
|
||||||
return None
|
|
||||||
d = DictObject(**outs[-1])
|
|
||||||
return d
|
|
||||||
|
|
||||||
async def get_llm_llmusage(luid):
|
async def get_llm_llmusage(luid):
|
||||||
env = request._run_ns
|
env = request._run_ns
|
||||||
async with get_sor_context(env, 'llmage') as sor:
|
async with get_sor_context(env, 'llmage') as sor:
|
||||||
@ -165,7 +154,7 @@ async def query_task_status(request, upappid, apiname, luid, userid, taskid):
|
|||||||
|
|
||||||
for apiname in apinames:
|
for apiname in apinames:
|
||||||
while True
|
while True
|
||||||
lastoutout = get_llmusage_last_output(llmusage)
|
lastoutout = await get_lastoutput(llmusage.ioinfo)
|
||||||
if lastoutout['status'] in ['FAILED', 'SUCCEEDED']
|
if lastoutout['status'] in ['FAILED', 'SUCCEEDED']
|
||||||
return
|
return
|
||||||
ns = {'taskid': taskid}
|
ns = {'taskid': taskid}
|
||||||
|
|||||||
@ -84,10 +84,13 @@ async def uapi_request(request, llm, callerid, callerorgid, params_kw=None):
|
|||||||
llmusage.use_time = timestampstr()
|
llmusage.use_time = timestampstr()
|
||||||
llmusage.userid = callerid
|
llmusage.userid = callerid
|
||||||
llmusage.usages = json.dumps(usage, ensure_ascii=False)
|
llmusage.usages = json.dumps(usage, ensure_ascii=False)
|
||||||
llmusage.ioinfo = json.dumps({
|
ioinfo = json.dumps({
|
||||||
"input": params_kw,
|
"input": params_kw,
|
||||||
"output": outlines
|
'output': [d]
|
||||||
}, ensure_ascii=False)
|
}, ensure_ascii=False)
|
||||||
|
webpath = await write_llmio(llmusage.id, ioinfo)
|
||||||
|
llmusage.ioinfo = webpath
|
||||||
|
debug(f'webpath={webpath}:')
|
||||||
llmusage.transno = params_kw.transno
|
llmusage.transno = params_kw.transno
|
||||||
llmusage.responsed_seconds = responsed_seconds
|
llmusage.responsed_seconds = responsed_seconds
|
||||||
llmusage.finish_seconds = finish_seconds
|
llmusage.finish_seconds = finish_seconds
|
||||||
|
|||||||
@ -50,10 +50,12 @@ async def sync_uapi_request(request, llm, callerid, callerorgid, params_kw=None)
|
|||||||
llmusage.use_time = timestampstr()
|
llmusage.use_time = timestampstr()
|
||||||
llmusage.userid = callerid
|
llmusage.userid = callerid
|
||||||
llmusage.usages = json.dumps(usage, ensure_ascii=False)
|
llmusage.usages = json.dumps(usage, ensure_ascii=False)
|
||||||
llmusage.ioinfo = json.dumps({
|
ioinfo = json.dumps({
|
||||||
"input": params_kw,
|
"input": params_kw,
|
||||||
"output": [d]
|
'output': [d]
|
||||||
}, ensure_ascii=False)
|
}, ensure_ascii=False)
|
||||||
|
webpath = await write_llmio(llmusage.id, ioinfo)
|
||||||
|
llmusage.ioinfo = webpath
|
||||||
llmusage.transno = params_kw.transno
|
llmusage.transno = params_kw.transno
|
||||||
llmusage.responsed_seconds = responsed_seconds
|
llmusage.responsed_seconds = responsed_seconds
|
||||||
llmusage.finish_seconds = finish_seconds
|
llmusage.finish_seconds = finish_seconds
|
||||||
|
|||||||
@ -25,6 +25,11 @@ async def append_new_llmoutput(webpath, output):
|
|||||||
iostr = json.dumps(io, ensure_ascii=False, indent=4)
|
iostr = json.dumps(io, ensure_ascii=False, indent=4)
|
||||||
f.write(iostr.encode('utf-8'))
|
f.write(iostr.encode('utf-8'))
|
||||||
|
|
||||||
|
async def get_usage_from_lastoutput(webpath):
|
||||||
|
bin = await read_webpath(webpath)
|
||||||
|
io = json.load(bin.decode('utf-8'))
|
||||||
|
return io['output'][-1]
|
||||||
|
|
||||||
async def read_webpath(webpath):
|
async def read_webpath(webpath):
|
||||||
fs = FileStorage()
|
fs = FileStorage()
|
||||||
p = fs.realPath(webpath)
|
p = fs.realPath(webpath)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user