feat: /v1/media/{apiname} 14端点(KTV GPU服务)

This commit is contained in:
yumoqing 2026-07-07 21:28:05 +08:00
parent 8556564455
commit fe82251e2e
14 changed files with 518 additions and 0 deletions

View File

@ -0,0 +1,37 @@
# KTV Media API - asr-transcribe
# /v1/media/asr-transcribe
debug_params('params_kw', params_kw)
userid = await get_user()
userorgid = await get_userorgid()
if userid is None:
return openai_403()
catelogid = 'ktv_pipeline'
model_name = 'asr-transcribe'
params_kw.model = model_name
params_kw.catelogid = catelogid
env = request._run_ns
async with get_sor_context(env, 'llmage') as sor:
sql = """select distinct a.* from llm a
join llm_api_map m on a.id = m.llmid
join llmcatelog b on m.llmcatelogid = b.id
where (b.id = ${catelogid}$ OR b.name = ${catelogid}$)
and a.model=${model}$
and a.status = 'published'"""
recs = await sor.sqlExe(sql, {'catelogid': catelogid, 'model': model_name})
if len(recs) == 0:
return openai_400()
params_kw.llmid = recs[0].id
params_kw.llmcatelogid = catelogid
f = await checkCustomerBalance(params_kw.llmid, userid, userorgid)
if not f:
return openai_429()
if not params_kw.transno:
import uuid; params_kw.transno = str(uuid.uuid4()).replace("-","")
return await inference(request, env=env)

View File

@ -0,0 +1,37 @@
# KTV Media API - demucs-separate
# /v1/media/demucs-separate
debug_params('params_kw', params_kw)
userid = await get_user()
userorgid = await get_userorgid()
if userid is None:
return openai_403()
catelogid = 'ktv_pipeline'
model_name = 'demucs-separate'
params_kw.model = model_name
params_kw.catelogid = catelogid
env = request._run_ns
async with get_sor_context(env, 'llmage') as sor:
sql = """select distinct a.* from llm a
join llm_api_map m on a.id = m.llmid
join llmcatelog b on m.llmcatelogid = b.id
where (b.id = ${catelogid}$ OR b.name = ${catelogid}$)
and a.model=${model}$
and a.status = 'published'"""
recs = await sor.sqlExe(sql, {'catelogid': catelogid, 'model': model_name})
if len(recs) == 0:
return openai_400()
params_kw.llmid = recs[0].id
params_kw.llmcatelogid = catelogid
f = await checkCustomerBalance(params_kw.llmid, userid, userorgid)
if not f:
return openai_429()
if not params_kw.transno:
import uuid; params_kw.transno = str(uuid.uuid4()).replace("-","")
return await inference(request, env=env)

View File

@ -0,0 +1,37 @@
# KTV Media API - face-compare
# /v1/media/face-compare
debug_params('params_kw', params_kw)
userid = await get_user()
userorgid = await get_userorgid()
if userid is None:
return openai_403()
catelogid = 'ktv_pipeline'
model_name = 'face-compare'
params_kw.model = model_name
params_kw.catelogid = catelogid
env = request._run_ns
async with get_sor_context(env, 'llmage') as sor:
sql = """select distinct a.* from llm a
join llm_api_map m on a.id = m.llmid
join llmcatelog b on m.llmcatelogid = b.id
where (b.id = ${catelogid}$ OR b.name = ${catelogid}$)
and a.model=${model}$
and a.status = 'published'"""
recs = await sor.sqlExe(sql, {'catelogid': catelogid, 'model': model_name})
if len(recs) == 0:
return openai_400()
params_kw.llmid = recs[0].id
params_kw.llmcatelogid = catelogid
f = await checkCustomerBalance(params_kw.llmid, userid, userorgid)
if not f:
return openai_429()
if not params_kw.transno:
import uuid; params_kw.transno = str(uuid.uuid4()).replace("-","")
return await inference(request, env=env)

View File

@ -0,0 +1,37 @@
# KTV Media API - face-detect
# /v1/media/face-detect
debug_params('params_kw', params_kw)
userid = await get_user()
userorgid = await get_userorgid()
if userid is None:
return openai_403()
catelogid = 'ktv_pipeline'
model_name = 'face-detect'
params_kw.model = model_name
params_kw.catelogid = catelogid
env = request._run_ns
async with get_sor_context(env, 'llmage') as sor:
sql = """select distinct a.* from llm a
join llm_api_map m on a.id = m.llmid
join llmcatelog b on m.llmcatelogid = b.id
where (b.id = ${catelogid}$ OR b.name = ${catelogid}$)
and a.model=${model}$
and a.status = 'published'"""
recs = await sor.sqlExe(sql, {'catelogid': catelogid, 'model': model_name})
if len(recs) == 0:
return openai_400()
params_kw.llmid = recs[0].id
params_kw.llmcatelogid = catelogid
f = await checkCustomerBalance(params_kw.llmid, userid, userorgid)
if not f:
return openai_429()
if not params_kw.transno:
import uuid; params_kw.transno = str(uuid.uuid4()).replace("-","")
return await inference(request, env=env)

View File

@ -0,0 +1,37 @@
# KTV Media API - face-recognize
# /v1/media/face-recognize
debug_params('params_kw', params_kw)
userid = await get_user()
userorgid = await get_userorgid()
if userid is None:
return openai_403()
catelogid = 'ktv_pipeline'
model_name = 'face-recognize'
params_kw.model = model_name
params_kw.catelogid = catelogid
env = request._run_ns
async with get_sor_context(env, 'llmage') as sor:
sql = """select distinct a.* from llm a
join llm_api_map m on a.id = m.llmid
join llmcatelog b on m.llmcatelogid = b.id
where (b.id = ${catelogid}$ OR b.name = ${catelogid}$)
and a.model=${model}$
and a.status = 'published'"""
recs = await sor.sqlExe(sql, {'catelogid': catelogid, 'model': model_name})
if len(recs) == 0:
return openai_400()
params_kw.llmid = recs[0].id
params_kw.llmcatelogid = catelogid
f = await checkCustomerBalance(params_kw.llmid, userid, userorgid)
if not f:
return openai_429()
if not params_kw.transno:
import uuid; params_kw.transno = str(uuid.uuid4()).replace("-","")
return await inference(request, env=env)

View File

@ -0,0 +1,37 @@
# KTV Media API - merge-video
# /v1/media/merge-video
debug_params('params_kw', params_kw)
userid = await get_user()
userorgid = await get_userorgid()
if userid is None:
return openai_403()
catelogid = 'ktv_pipeline'
model_name = 'merge-video'
params_kw.model = model_name
params_kw.catelogid = catelogid
env = request._run_ns
async with get_sor_context(env, 'llmage') as sor:
sql = """select distinct a.* from llm a
join llm_api_map m on a.id = m.llmid
join llmcatelog b on m.llmcatelogid = b.id
where (b.id = ${catelogid}$ OR b.name = ${catelogid}$)
and a.model=${model}$
and a.status = 'published'"""
recs = await sor.sqlExe(sql, {'catelogid': catelogid, 'model': model_name})
if len(recs) == 0:
return openai_400()
params_kw.llmid = recs[0].id
params_kw.llmcatelogid = catelogid
f = await checkCustomerBalance(params_kw.llmid, userid, userorgid)
if not f:
return openai_429()
if not params_kw.transno:
import uuid; params_kw.transno = str(uuid.uuid4()).replace("-","")
return await inference(request, env=env)

View File

@ -0,0 +1,37 @@
# KTV Media API - realesrgan-status
# /v1/media/realesrgan-status
debug_params('params_kw', params_kw)
userid = await get_user()
userorgid = await get_userorgid()
if userid is None:
return openai_403()
catelogid = 'ktv_pipeline'
model_name = 'realesrgan-status'
params_kw.model = model_name
params_kw.catelogid = catelogid
env = request._run_ns
async with get_sor_context(env, 'llmage') as sor:
sql = """select distinct a.* from llm a
join llm_api_map m on a.id = m.llmid
join llmcatelog b on m.llmcatelogid = b.id
where (b.id = ${catelogid}$ OR b.name = ${catelogid}$)
and a.model=${model}$
and a.status = 'published'"""
recs = await sor.sqlExe(sql, {'catelogid': catelogid, 'model': model_name})
if len(recs) == 0:
return openai_400()
params_kw.llmid = recs[0].id
params_kw.llmcatelogid = catelogid
f = await checkCustomerBalance(params_kw.llmid, userid, userorgid)
if not f:
return openai_429()
if not params_kw.transno:
import uuid; params_kw.transno = str(uuid.uuid4()).replace("-","")
return await inference(request, env=env)

View File

@ -0,0 +1,37 @@
# KTV Media API - realesrgan-upscale
# /v1/media/realesrgan-upscale
debug_params('params_kw', params_kw)
userid = await get_user()
userorgid = await get_userorgid()
if userid is None:
return openai_403()
catelogid = 'ktv_pipeline'
model_name = 'realesrgan-upscale'
params_kw.model = model_name
params_kw.catelogid = catelogid
env = request._run_ns
async with get_sor_context(env, 'llmage') as sor:
sql = """select distinct a.* from llm a
join llm_api_map m on a.id = m.llmid
join llmcatelog b on m.llmcatelogid = b.id
where (b.id = ${catelogid}$ OR b.name = ${catelogid}$)
and a.model=${model}$
and a.status = 'published'"""
recs = await sor.sqlExe(sql, {'catelogid': catelogid, 'model': model_name})
if len(recs) == 0:
return openai_400()
params_kw.llmid = recs[0].id
params_kw.llmcatelogid = catelogid
f = await checkCustomerBalance(params_kw.llmid, userid, userorgid)
if not f:
return openai_429()
if not params_kw.transno:
import uuid; params_kw.transno = str(uuid.uuid4()).replace("-","")
return await inference(request, env=env)

View File

@ -0,0 +1,37 @@
# KTV Media API - rvc-convert
# /v1/media/rvc-convert
debug_params('params_kw', params_kw)
userid = await get_user()
userorgid = await get_userorgid()
if userid is None:
return openai_403()
catelogid = 'ktv_pipeline'
model_name = 'rvc-convert'
params_kw.model = model_name
params_kw.catelogid = catelogid
env = request._run_ns
async with get_sor_context(env, 'llmage') as sor:
sql = """select distinct a.* from llm a
join llm_api_map m on a.id = m.llmid
join llmcatelog b on m.llmcatelogid = b.id
where (b.id = ${catelogid}$ OR b.name = ${catelogid}$)
and a.model=${model}$
and a.status = 'published'"""
recs = await sor.sqlExe(sql, {'catelogid': catelogid, 'model': model_name})
if len(recs) == 0:
return openai_400()
params_kw.llmid = recs[0].id
params_kw.llmcatelogid = catelogid
f = await checkCustomerBalance(params_kw.llmid, userid, userorgid)
if not f:
return openai_429()
if not params_kw.transno:
import uuid; params_kw.transno = str(uuid.uuid4()).replace("-","")
return await inference(request, env=env)

View File

@ -0,0 +1,37 @@
# KTV Media API - songrate-evaluate
# /v1/media/songrate-evaluate
debug_params('params_kw', params_kw)
userid = await get_user()
userorgid = await get_userorgid()
if userid is None:
return openai_403()
catelogid = 'ktv_pipeline'
model_name = 'songrate-evaluate'
params_kw.model = model_name
params_kw.catelogid = catelogid
env = request._run_ns
async with get_sor_context(env, 'llmage') as sor:
sql = """select distinct a.* from llm a
join llm_api_map m on a.id = m.llmid
join llmcatelog b on m.llmcatelogid = b.id
where (b.id = ${catelogid}$ OR b.name = ${catelogid}$)
and a.model=${model}$
and a.status = 'published'"""
recs = await sor.sqlExe(sql, {'catelogid': catelogid, 'model': model_name})
if len(recs) == 0:
return openai_400()
params_kw.llmid = recs[0].id
params_kw.llmcatelogid = catelogid
f = await checkCustomerBalance(params_kw.llmid, userid, userorgid)
if not f:
return openai_429()
if not params_kw.transno:
import uuid; params_kw.transno = str(uuid.uuid4()).replace("-","")
return await inference(request, env=env)

View File

@ -0,0 +1,37 @@
# KTV Media API - subtitle-render
# /v1/media/subtitle-render
debug_params('params_kw', params_kw)
userid = await get_user()
userorgid = await get_userorgid()
if userid is None:
return openai_403()
catelogid = 'ktv_pipeline'
model_name = 'subtitle-render'
params_kw.model = model_name
params_kw.catelogid = catelogid
env = request._run_ns
async with get_sor_context(env, 'llmage') as sor:
sql = """select distinct a.* from llm a
join llm_api_map m on a.id = m.llmid
join llmcatelog b on m.llmcatelogid = b.id
where (b.id = ${catelogid}$ OR b.name = ${catelogid}$)
and a.model=${model}$
and a.status = 'published'"""
recs = await sor.sqlExe(sql, {'catelogid': catelogid, 'model': model_name})
if len(recs) == 0:
return openai_400()
params_kw.llmid = recs[0].id
params_kw.llmcatelogid = catelogid
f = await checkCustomerBalance(params_kw.llmid, userid, userorgid)
if not f:
return openai_429()
if not params_kw.transno:
import uuid; params_kw.transno = str(uuid.uuid4()).replace("-","")
return await inference(request, env=env)

View File

@ -0,0 +1,37 @@
# KTV Media API - synth-generate
# /v1/media/synth-generate
debug_params('params_kw', params_kw)
userid = await get_user()
userorgid = await get_userorgid()
if userid is None:
return openai_403()
catelogid = 'ktv_pipeline'
model_name = 'synth-generate'
params_kw.model = model_name
params_kw.catelogid = catelogid
env = request._run_ns
async with get_sor_context(env, 'llmage') as sor:
sql = """select distinct a.* from llm a
join llm_api_map m on a.id = m.llmid
join llmcatelog b on m.llmcatelogid = b.id
where (b.id = ${catelogid}$ OR b.name = ${catelogid}$)
and a.model=${model}$
and a.status = 'published'"""
recs = await sor.sqlExe(sql, {'catelogid': catelogid, 'model': model_name})
if len(recs) == 0:
return openai_400()
params_kw.llmid = recs[0].id
params_kw.llmcatelogid = catelogid
f = await checkCustomerBalance(params_kw.llmid, userid, userorgid)
if not f:
return openai_429()
if not params_kw.transno:
import uuid; params_kw.transno = str(uuid.uuid4()).replace("-","")
return await inference(request, env=env)

View File

@ -0,0 +1,37 @@
# KTV Media API - synth-status
# /v1/media/synth-status
debug_params('params_kw', params_kw)
userid = await get_user()
userorgid = await get_userorgid()
if userid is None:
return openai_403()
catelogid = 'ktv_pipeline'
model_name = 'synth-status'
params_kw.model = model_name
params_kw.catelogid = catelogid
env = request._run_ns
async with get_sor_context(env, 'llmage') as sor:
sql = """select distinct a.* from llm a
join llm_api_map m on a.id = m.llmid
join llmcatelog b on m.llmcatelogid = b.id
where (b.id = ${catelogid}$ OR b.name = ${catelogid}$)
and a.model=${model}$
and a.status = 'published'"""
recs = await sor.sqlExe(sql, {'catelogid': catelogid, 'model': model_name})
if len(recs) == 0:
return openai_400()
params_kw.llmid = recs[0].id
params_kw.llmcatelogid = catelogid
f = await checkCustomerBalance(params_kw.llmid, userid, userorgid)
if not f:
return openai_429()
if not params_kw.transno:
import uuid; params_kw.transno = str(uuid.uuid4()).replace("-","")
return await inference(request, env=env)

View File

@ -0,0 +1,37 @@
# KTV Media API - video-eval-evaluate
# /v1/media/video-eval-evaluate
debug_params('params_kw', params_kw)
userid = await get_user()
userorgid = await get_userorgid()
if userid is None:
return openai_403()
catelogid = 'ktv_pipeline'
model_name = 'video-eval-evaluate'
params_kw.model = model_name
params_kw.catelogid = catelogid
env = request._run_ns
async with get_sor_context(env, 'llmage') as sor:
sql = """select distinct a.* from llm a
join llm_api_map m on a.id = m.llmid
join llmcatelog b on m.llmcatelogid = b.id
where (b.id = ${catelogid}$ OR b.name = ${catelogid}$)
and a.model=${model}$
and a.status = 'published'"""
recs = await sor.sqlExe(sql, {'catelogid': catelogid, 'model': model_name})
if len(recs) == 0:
return openai_400()
params_kw.llmid = recs[0].id
params_kw.llmcatelogid = catelogid
f = await checkCustomerBalance(params_kw.llmid, userid, userorgid)
if not f:
return openai_429()
if not params_kw.transno:
import uuid; params_kw.transno = str(uuid.uuid4()).replace("-","")
return await inference(request, env=env)