bugfix
This commit is contained in:
parent
7e6054c230
commit
66ed700261
@ -19,7 +19,6 @@ from .utils import (
|
|||||||
get_tpac_balance,
|
get_tpac_balance,
|
||||||
get_user_tpac_apikey,
|
get_user_tpac_apikey,
|
||||||
get_llm,
|
get_llm,
|
||||||
BufferedLLMs
|
|
||||||
)
|
)
|
||||||
|
|
||||||
from .llmclient import (
|
from .llmclient import (
|
||||||
|
|||||||
@ -278,27 +278,11 @@ async def get_llms_by_catelog(catelogid=None, orderby='providerid'):
|
|||||||
return d
|
return d
|
||||||
return []
|
return []
|
||||||
|
|
||||||
class BufferedLLMs:
|
async def get_llm(llmid, catelogid=None):
|
||||||
llms = {}
|
today = curDateString()
|
||||||
@classmethod
|
env = ServerEnv()
|
||||||
def clear_cache(cls, data=None):
|
async with get_sor_context(env, 'llmage') as sor:
|
||||||
"""Clear all cached LLM configurations.
|
sql = """select a.id,
|
||||||
Called as EventDispatcher handler, so accepts optional data param.
|
|
||||||
"""
|
|
||||||
cls.llms.clear()
|
|
||||||
debug('BufferedLLMs cache cleared')
|
|
||||||
async def get_llm(self, llmid, catelogid=None):
|
|
||||||
today = curDateString()
|
|
||||||
"""
|
|
||||||
暂时不要buffered
|
|
||||||
k = f'{llmid}.{today}'
|
|
||||||
d = BufferedLLMs.llms.get(k)
|
|
||||||
if d:
|
|
||||||
return d
|
|
||||||
"""
|
|
||||||
env = ServerEnv()
|
|
||||||
async with get_sor_context(env, 'llmage') as sor:
|
|
||||||
sql = """select a.id,
|
|
||||||
a.name,
|
a.name,
|
||||||
a.model,
|
a.model,
|
||||||
a.providerid,
|
a.providerid,
|
||||||
@ -324,44 +308,29 @@ from llm a
|
|||||||
,uapi e on c.apisetid = e.apisetid and m.apiname = e.name
|
,uapi e on c.apisetid = e.apisetid and m.apiname = e.name
|
||||||
,uapiio f on e.ioid = f.id
|
,uapiio f on e.ioid = f.id
|
||||||
where a.id = m.llmid
|
where a.id = m.llmid
|
||||||
and a.upappid = c.id
|
and a.upappid = c.id
|
||||||
and c.apisetid = e.apisetid and m.apiname = e.name
|
and c.apisetid = e.apisetid and m.apiname = e.name
|
||||||
and e.ioid = f.id
|
and e.ioid = f.id
|
||||||
and a.id = ${llmid}$
|
and a.id = ${llmid}$
|
||||||
and a.expired_date > ${today}$
|
and a.expired_date > ${today}$
|
||||||
and a.enabled_date <= ${today}$
|
and a.enabled_date <= ${today}$
|
||||||
"""
|
"""
|
||||||
ns = {'llmid': llmid, 'today': today}
|
ns = {'llmid': llmid, 'today': today}
|
||||||
if catelogid:
|
if catelogid:
|
||||||
sql += ' and m.llmcatelogid = ${catelogid}$ '
|
sql += ' and m.llmcatelogid = ${catelogid}$ '
|
||||||
ns['catelogid'] = catelogid
|
ns['catelogid'] = catelogid
|
||||||
else:
|
else:
|
||||||
sql += ' and a.llmcatelogid = lc.id '
|
sql += ' and a.llmcatelogid = lc.id '
|
||||||
recs = await sor.sqlExe(sql, ns.copy())
|
recs = await sor.sqlExe(sql, ns.copy())
|
||||||
if len(recs) > 0:
|
if len(recs) > 0:
|
||||||
r = recs[0]
|
r = recs[0]
|
||||||
return r
|
return r
|
||||||
# 暂时不buffer
|
else:
|
||||||
dates = BufferedLLMs.llms.get(llmid, [])
|
debug(f'{llmid=} not found, {ns=}, {sql=}')
|
||||||
dates.append(today)
|
return None
|
||||||
cnt = len(dates)
|
exception(f'Error: {format_exc()}')
|
||||||
if cnt > 2:
|
return None
|
||||||
for i in range(0, cnt -2):
|
|
||||||
dat = dates[i]
|
|
||||||
del BufferedLLMs.llms[f'{llmid}.{dat}']
|
|
||||||
dates = dates[-2:]
|
|
||||||
BufferedLLMs.llms[llmid] = dates
|
|
||||||
BufferedLLMs.llms[k] = r
|
|
||||||
return r
|
|
||||||
else:
|
|
||||||
debug(f'{llmid=} not found, {ns=}, {sql=}')
|
|
||||||
return None
|
|
||||||
exception(f'Error: {format_exc()}')
|
|
||||||
return None
|
|
||||||
|
|
||||||
async def get_llm(llmid, catelogid=None):
|
|
||||||
bllms = BufferedLLMs()
|
|
||||||
return await bllms.get_llm(llmid, catelogid=catelogid)
|
|
||||||
|
|
||||||
async def write_llmusage(llmusage):
|
async def write_llmusage(llmusage):
|
||||||
env = ServerEnv()
|
env = ServerEnv()
|
||||||
|
|||||||
@ -48,6 +48,12 @@
|
|||||||
"name": "ppid",
|
"name": "ppid",
|
||||||
"type": "varchar(32)",
|
"type": "varchar(32)",
|
||||||
"comment": "计费程序ID,关联pricing_program表"
|
"comment": "计费程序ID,关联pricing_program表"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "isdefaultcatelog",
|
||||||
|
"type": "varchar(1)",
|
||||||
|
"not_null": true,
|
||||||
|
"comment": "缺省分类"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"indexes": [
|
"indexes": [
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user