54 lines
1.7 KiB
Python
54 lines
1.7 KiB
Python
from appPublic.log import debug, exception
|
|
from ahserver.serverenv import ServerEnv
|
|
from sqlor.dbpools import get_sor_context
|
|
from .skillengine import IndustrialSkillEngine
|
|
from llmage.llmclient import inference_generator
|
|
|
|
## for video-generate skill
|
|
|
|
async def get_llmid_by_llmcatelog(type, providerid):
|
|
env = ServerEnv()
|
|
sql = """select a.id, a.enabled_date from llm a, llmcatelog b
|
|
where a.llmcatelogid = b.id
|
|
and b.name = ${type}$
|
|
and a.providerid = ${providerid}$
|
|
order by a.enabled_date desc"""
|
|
async with get_sor_context(env, 'skillagent') as sor:
|
|
recs = await sor.sqlExe(sql, {'type': type, 'providerid': providerid})
|
|
if recs:
|
|
return recs[0].id
|
|
return None
|
|
|
|
async def pingpang(request, params_kw=None):
|
|
return f'乒乓应答:{params_kw}'
|
|
|
|
async def text2video(request, params_kw=None):
|
|
providerid = params_kw.providerid
|
|
add_files = params_kw.add_files
|
|
prompt = params_kw.prompt
|
|
llmid = await get_llmid_by_llmcatelog('文生视频', providerid)
|
|
if llmid is None:
|
|
debug(f'---------text2video(): llmid is None----------')
|
|
return f'image2video():{params_kw}, llmid not found'
|
|
|
|
params_kw.llmid = llmid
|
|
ret = ''
|
|
async for d in inference_generator(request, params_kw=params_kw):
|
|
ret += d
|
|
debug(f'---------text2video():{ret=}----------')
|
|
return ret
|
|
|
|
async def image2video(request, params_kw=None):
|
|
providerid = params_kw.providerid
|
|
add_files = params_kw.add_files
|
|
prompt = params_kw.prompt
|
|
llmid = await get_llmid_by_llmcatelog('图生视频', providerid)
|
|
if llmid is None:
|
|
return f'image2video():{params_kw}, llmid not found'
|
|
ret = ''
|
|
params_kw.llmid = llmid
|
|
async for d in inference_generator(request, params_kw=params_kw):
|
|
ret += d
|
|
return ret
|
|
|