sage/scripts/ktv_uapi_migration_p2_uapi.sql

317 lines
9.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
-- 更新14条uapi记录stream/data/response/ioid/headers
-- ============================================================
-- ============================================================
-- 1. ASR语音识别 (sync)
-- GPU: /asr/api/asr-transcribe → localhost:9925
-- uapiio: ktv_asr_transcribe_io
-- ============================================================
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": {"audio_seconds": {{audio_seconds|float}}}
}',
ioid = 'ktv_asr_transcribe_io'
WHERE id = 'uapi_ktv_asr_transcribe';
-- ============================================================
-- 2. Demucs音频分离 (sync)
-- GPU: /demucs/api/demucs-separate → localhost:9083
-- ============================================================
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": {"audio_seconds": {{audio_seconds|float}}}
}',
ioid = 'ktv_demucs_separate_io'
WHERE id = 'uapi_ktv_demucs_separate';
-- ============================================================
-- 3. 人脸检测 (sync)
-- GPU: /face/api/face-detect → localhost:9091
-- ============================================================
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": {"detect_count": {{faces|length}}}
}',
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": {"recognize_count": {{matches|length}}}
}',
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|float}},
"usage": {"compare_count": 1}
}',
ioid = 'ktv_face_compare_io'
WHERE id = 'uapi_ktv_face_compare';
-- ============================================================
-- 6. 字幕渲染 (sync)
-- GPU: /subtitle/api/subtitle-render → localhost:9080
-- ============================================================
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": {"subtitle_count": {{segments|length}}}
}',
ioid = 'ktv_subtitle_render_io'
WHERE id = 'uapi_ktv_subtitle_render';
-- ============================================================
-- 7. 视频合并 (sync)
-- GPU: /merge/api/merge-video → localhost:9080
-- ============================================================
UPDATE uapi SET
stream = 'sync',
headers = '{"Content-Type": "application/json"}',
data = '{
{% if video_url %}
"video_url": "{{video_url}}"
{% endif %}
{% if audio_url %}
,"audio_url": "{{audio_url}}"
{% endif %}
{% if subtitle_url %}
,"subtitle_url": "{{subtitle_url}}"
{% endif %}
{% if output_format %}
,"output_format": "{{output_format}}"
{% endif %}
}',
response = '{
"status": "{{status}}",
"output_url": "{{output_url}}",
"duration": {{duration|float}},
"usage": {"output_seconds": {{duration|float}}}
}',
ioid = 'ktv_merge_video_io'
WHERE id = 'uapi_ktv_merge_video';
-- ============================================================
-- 8. 歌曲评分 (sync)
-- GPU: /songrate/api/songrate-evaluate → localhost:8901
-- ============================================================
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|float}},
"details": {{json.dumps(details, ensure_ascii=False)}},
"usage": {"audio_seconds": {{audio_seconds|float}}}
}',
ioid = 'ktv_songrate_evaluate_io'
WHERE id = 'uapi_ktv_songrate_evaluate';
-- ============================================================
-- 9. 音乐合成 (async - 提交任务)
-- GPU: /synth/api/synth-generate → localhost:9084
-- ============================================================
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: /synth/api/synth-status → localhost:9084
-- ============================================================
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": {"audio_seconds": {{duration|float}}}
{% elif status == "FAILED" %}
"taskstatus": "FAILED",
"error": "{{error}}"
{% else %}
"taskstatus": "PENDING"
{% endif %}
}',
ioid = 'ktv_synth_status_io'
WHERE id = 'uapi_ktv_synth_status';
-- ============================================================
-- 11. 超分辨率 (async - 提交任务)
-- GPU: /realesrgan/api/realesrgan-upscale → localhost:9082
-- ============================================================
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: /realesrgan/api/realesrgan-status → localhost:9082
-- ============================================================
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": {"image_count": 1}
{% 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)
-- GPU: /rvc/api/rvc-convert → localhost:9085
-- ============================================================
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": {"audio_seconds": {{audio_seconds|float}}}
}',
ioid = 'ktv_rvc_convert_io'
WHERE id = 'uapi_ktv_rvc_convert';
-- ============================================================
-- 14. 视频评估 (sync)
-- GPU: /video-eval/api/video-eval-evaluate → localhost:8902
-- ============================================================
UPDATE uapi SET
stream = 'sync',
headers = '{"Content-Type": "application/json"}',
data = '{
"video_url": "{{video_url}}"
}',
response = '{
"status": "{{status}}",
"score": {{score|float}},
"details": {{json.dumps(details, ensure_ascii=False)}},
"usage": {"video_seconds": {{video_seconds|float}}}
}',
ioid = 'ktv_video_eval_evaluate_io'
WHERE id = 'uapi_ktv_video_eval_evaluate';
-- ============================================================
-- 关键:更新 llm_api_map 中的 async 模型的 query_apiname
-- synth-generate 查询 synth-status
-- realesrgan-upscale 查询 realesrgan-status
-- ============================================================
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';