sage/scripts/ktv_uapi_migration_p2_uapi.sql

173 lines
8.6 KiB
SQL
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服务 uapi 补全迁移 Part 2
-- response 采用透传模式GPU服务在响应中直接返回 usage
-- 模板只做最小加工usage 字段原样传递给计费引擎
-- ============================================================
-- ============================================================
-- 1. ASR语音识别 (sync)
-- ============================================================
UPDATE uapi SET
stream = 'sync',
headers = '{"Content-Type": "application/json"}',
data = '{"audio_url":"{{audio_url}}"{% if language %},"language":"{{language}}"{% endif %}}',
response = '{"status":"{{status}}","text":"{{text}}","segments":{{json.dumps(segments, ensure_ascii=False)}},"usage":{{json.dumps(usage, ensure_ascii=False)}}}',
ioid = 'ktv_asr_transcribe_io'
WHERE id = 'uapi_ktv_asr_transcribe';
-- ============================================================
-- 2. Demucs音频分离 (sync)
-- ============================================================
UPDATE uapi SET
stream = 'sync',
headers = '{"Content-Type": "application/json"}',
data = '{"audio_url":"{{audio_url}}"}',
response = '{"status":"{{status}}","vocals_url":"{{vocals_url}}","accompaniment_url":"{{accompaniment_url}}","usage":{{json.dumps(usage, ensure_ascii=False)}}}',
ioid = 'ktv_demucs_separate_io'
WHERE id = 'uapi_ktv_demucs_separate';
-- ============================================================
-- 3. 人脸检测 (sync)
-- ============================================================
UPDATE uapi SET
stream = 'sync',
headers = '{"Content-Type": "application/json"}',
data = '{"image_url":"{{image_url}}"}',
response = '{"status":"{{status}}","faces":{{json.dumps(faces, ensure_ascii=False)}},"usage":{{json.dumps(usage, ensure_ascii=False)}}}',
ioid = 'ktv_face_detect_io'
WHERE id = 'uapi_ktv_face_detect';
-- ============================================================
-- 4. 人脸识别 (sync)
-- ============================================================
UPDATE uapi SET
stream = 'sync',
headers = '{"Content-Type": "application/json"}',
data = '{"image_url":"{{image_url}}"{% if face_id %},"face_id":"{{face_id}}"{% endif %}}',
response = '{"status":"{{status}}","matches":{{json.dumps(matches, ensure_ascii=False)}},"usage":{{json.dumps(usage, ensure_ascii=False)}}}',
ioid = 'ktv_face_recognize_io'
WHERE id = 'uapi_ktv_face_recognize';
-- ============================================================
-- 5. 人脸比对 (sync)
-- ============================================================
UPDATE uapi SET
stream = 'sync',
headers = '{"Content-Type": "application/json"}',
data = '{"image_url1":"{{image_url1}}","image_url2":"{{image_url2}}"}',
response = '{"status":"{{status}}","similarity":{{similarity}},"usage":{{json.dumps(usage, ensure_ascii=False)}}}',
ioid = 'ktv_face_compare_io'
WHERE id = 'uapi_ktv_face_compare';
-- ============================================================
-- 6. 字幕渲染 (sync)
-- ============================================================
UPDATE uapi SET
stream = 'sync',
headers = '{"Content-Type": "application/json"}',
data = '{"lyrics_json":{{lyrics_json}}{% if width %},"width":{{width}}{% endif %}{% if height %},"height":{{height}}{% endif %}}',
response = '{"status":"{{status}}","ass_url":"{{ass_url}}","usage":{{json.dumps(usage, ensure_ascii=False)}}}',
ioid = 'ktv_subtitle_render_io'
WHERE id = 'uapi_ktv_subtitle_render';
-- ============================================================
-- 7. 视频合并 (sync)
-- ============================================================
UPDATE uapi SET
stream = 'sync',
headers = '{"Content-Type": "application/json"}',
data = '{% set comma = joiner(",") %}{{% if video_url %}{{comma()}}"video_url":"{{video_url}}"{% endif %}{% if audio_url %}{{comma()}}"audio_url":"{{audio_url}}"{% endif %}{% if subtitle_url %}{{comma()}}"subtitle_url":"{{subtitle_url}}"{% endif %}{% if output_format %}{{comma()}}"output_format":"{{output_format}}"{% endif %}}',
response = '{"status":"{{status}}","output_url":"{{output_url}}","duration":{{duration}},"usage":{{json.dumps(usage, ensure_ascii=False)}}}',
ioid = 'ktv_merge_video_io'
WHERE id = 'uapi_ktv_merge_video';
-- ============================================================
-- 8. 歌曲评分 (sync)
-- ============================================================
UPDATE uapi SET
stream = 'sync',
headers = '{"Content-Type": "application/json"}',
data = '{"audio_url":"{{audio_url}}"{% if scene %},"scene":"{{scene}}"{% endif %}}',
response = '{"status":"{{status}}","score":{{score}},"details":{{json.dumps(details, ensure_ascii=False)}},"usage":{{json.dumps(usage, ensure_ascii=False)}}}',
ioid = 'ktv_songrate_evaluate_io'
WHERE id = 'uapi_ktv_songrate_evaluate';
-- ============================================================
-- 9. 音乐合成 (async 提交)
-- GPU 响应: {"task_id":"xxx","status":"ok"}
-- usage 在状态查询端点返回
-- ============================================================
UPDATE uapi SET
stream = 'async',
headers = '{"Content-Type": "application/json"}',
data = '{"lyrics":"{{lyrics}}"{% if style %},"style":"{{style}}"{% endif %}{% if reference_audio %},"reference_audio":"{{reference_audio}}"{% endif %}}',
response = '{"taskid":"{{task_id}}","taskstatus":"PENDING"}',
ioid = 'ktv_synth_generate_io'
WHERE id = 'uapi_ktv_synth_generate';
-- ============================================================
-- 10. 合成状态查询 (sync)
-- GPU 须返回 usage
-- ============================================================
UPDATE uapi SET
stream = 'sync',
headers = '{"Content-Type": "application/json"}',
data = '{"task_id":"{{task_id}}"}',
response = '{% if status == "SUCCEEDED" %}{"taskstatus":"SUCCEEDED","output_url":"{{output_url}}","usage":{{json.dumps(usage, ensure_ascii=False)}}}{% elif status == "FAILED" %}{"taskstatus":"FAILED","error":"{{error}}"}{% else %}{"taskstatus":"PENDING"}{% endif %}',
ioid = 'ktv_synth_status_io'
WHERE id = 'uapi_ktv_synth_status';
-- ============================================================
-- 11. 超分辨率 (async 提交)
-- ============================================================
UPDATE uapi SET
stream = 'async',
headers = '{"Content-Type": "application/json"}',
data = '{"image_url":"{{image_url}}"{% if scale %},"scale":{{scale}}{% endif %}}',
response = '{"taskid":"{{task_id}}","taskstatus":"PENDING"}',
ioid = 'ktv_realesrgan_upscale_io'
WHERE id = 'uapi_ktv_realesrgan_upscale';
-- ============================================================
-- 12. 超分状态查询 (sync)
-- GPU 须返回 usage
-- ============================================================
UPDATE uapi SET
stream = 'sync',
headers = '{"Content-Type": "application/json"}',
data = '{"task_id":"{{task_id}}"}',
response = '{% if status == "SUCCEEDED" %}{"taskstatus":"SUCCEEDED","output_url":"{{output_url}}","usage":{{json.dumps(usage, ensure_ascii=False)}}}{% elif status == "FAILED" %}{"taskstatus":"FAILED","error":"{{error}}"}{% else %}{"taskstatus":"PENDING"}{% endif %}',
ioid = 'ktv_realesrgan_status_io'
WHERE id = 'uapi_ktv_realesrgan_status';
-- ============================================================
-- 13. RVC声音转换 (sync)
-- ============================================================
UPDATE uapi SET
stream = 'sync',
headers = '{"Content-Type": "application/json"}',
data = '{"audio_url":"{{audio_url}}","voice_model":"{{voice_model}}"}',
response = '{"status":"{{status}}","output_url":"{{output_url}}","usage":{{json.dumps(usage, ensure_ascii=False)}}}',
ioid = 'ktv_rvc_convert_io'
WHERE id = 'uapi_ktv_rvc_convert';
-- ============================================================
-- 14. 视频评估 (sync)
-- ============================================================
UPDATE uapi SET
stream = 'sync',
headers = '{"Content-Type": "application/json"}',
data = '{"video_url":"{{video_url}}"}',
response = '{"status":"{{status}}","score":{{score}},"details":{{json.dumps(details, ensure_ascii=False)}},"usage":{{json.dumps(usage, ensure_ascii=False)}}}',
ioid = 'ktv_video_eval_evaluate_io'
WHERE id = 'uapi_ktv_video_eval_evaluate';
-- ============================================================
-- async 模型的 query_apiname 更新
-- ============================================================
UPDATE llm_api_map SET query_apiname = 'synth-status', query_period = 5
WHERE llmid = 'llm_ktv_synth_generate' AND llmcatelogid = 'ktv_pipeline';
UPDATE llm_api_map SET query_apiname = 'realesrgan-status', query_period = 3
WHERE llmid = 'llm_ktv_realesrgan_upscale' AND llmcatelogid = 'ktv_pipeline';