1|# KTV Pipeline / GPU Service Inference API 2|# POST /v1/pipeline/submit 3|# catelogid 固定为 ktv_pipeline,无需传 catelogid 4|# 5|# Required params: 6|# model: string - 模型名称,如 "ky-asr-transcribe" 7|# 8|# 各服务特定参数见 API 文档 9|# 10|# 同步服务直接返回结果: 11|# { 12|# "taskid": "luid_xxx", 13|# "taskstatus": "SUCCEEDED", 14|# ...服务特定结果字段..., 15|# "usage": {...} 16|# } 17|# 18|# 异步服务返回任务信息: 19|# { 20|# "taskid": "luid_xxx", 21|# "taskstatus": "PENDING" 22|# } 23|# 异步结果通过 /v1/tasks?taskid=xxx 查询 24| 25|debug_params('params_kw', params_kw) 26| 27|userid = await get_user() 28|userorgid = await get_userorgid() 29|if userid is None: 30| debug('need login') 31| return openai_403() 32| 33|# Validate required parameters 34|if not params_kw.model: 35| d = return_error('Missing required parameter: model') 36| return json_response(d, status=400) 37| 38|catelogid = 'ktv_pipeline' 39|params_kw.catelogid = catelogid 40| 41|env = request._run_ns 42|# llmid from cache (model+catelogid -> llmid) llmid = await env.get_llmid_cached(env, params_kw.model or 'qwen3-max', 'ktv_pipeline') if not llmid: debug(f'model not found: params_kw.model') return {{error_response}} params_kw.llmid = llmid 59| params_kw.llmcatelogid = catelogid 60| 61|debug(f'{params_kw.llmid=}') 62| 63|# Check balance 64|f = await checkCustomerBalance(params_kw.llmid, userid, userorgid) 65|if not f: 66| debug(f'{userid=} balance not enough') 67| return openai_429() 68| 69|# Generate task ID 70|if not params_kw.transno: 71| params_kw.transno = getID() 72| 73|# Call inference 74|return await inference(request, env=env) 75|