65 lines
1.6 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# KTV Pipeline / GPU Service Inference API
# POST /v1/pipeline/submit
# catelogid 固定为 ktv_pipeline无需传 catelogid
#
# Required params:
# model: string - 模型名称,如 "ky-asr-transcribe"
#
# 各服务特定参数见 API 文档
#
# 同步服务直接返回结果:
# {
# "taskid": "luid_xxx",
# "taskstatus": "SUCCEEDED",
# ...服务特定结果字段...,
# "usage": {...}
# }
#
# 异步服务返回任务信息:
# {
# "taskid": "luid_xxx",
# "taskstatus": "PENDING"
# }
# 异步结果通过 /v1/tasks?taskid=xxx 查询
debug_params('params_kw', params_kw)
userid = await get_user()
userorgid = await get_userorgid()
if userid is None:
debug('need login')
return openai_403()
# Validate required parameters
if not params_kw.model:
d = return_error('Missing required parameter: model')
return json_response(d, status=400)
catelogid = 'ktv_pipeline'
params_kw.catelogid = catelogid
env = request._run_ns
# llmid from cache (model+catelogid -> llmid)
llmid = await env.get_llmid_cached(env, params_kw.model, catelogid)
if not llmid:
debug(f'{params_kw.model=} not found under ktv_pipeline catalog')
d = return_error(f'Model "{params_kw.model}" not found or not available')
return json_response(d, status=400)
params_kw.llmid = llmid
params_kw.llmcatelogid = catelogid
debug(f'{params_kw.llmid=}')
# Check balance
f = await checkCustomerBalance(params_kw.llmid, userid, userorgid)
if not f:
debug(f'{userid=} balance not enough')
return openai_429()
# Generate task ID
if not params_kw.transno:
params_kw.transno = getID()
# Call inference
return await inference(request, env=env)