feat(platform): r2v/i2i能力支持——提取提示词枚举+媒体三表(_MEDIA_CAPS/_MEDIA_OUT_KEY/_MEDIA_INPUT_CAPS)同步,r2v产物video、输入媒体按文档示例识别

This commit is contained in:
yumoqing 2026-09-06 09:30:13 +08:00
parent c868b8854e
commit 523f3307d7

View File

@ -334,7 +334,7 @@ _EXTRACT_PROMPT = """你是大模型 API 配置专家。通读下面这份模型
"response_format": "响应格式说明content 字段路径 + usage 字段路径)",
"response_example": {"说明": "文档中的响应示例 JSON或结果字段说明逐字照抄无则 null"},
"async_steps": [{"purpose": "query|download", "path": "该步骤接口路径", "method": "GET|POST", "request_fields": ["请求字段名列表"], "response_format": "该步骤响应格式说明"}],
"models": [{"vendor_model_id": "供应商侧模型ID", "capability": "t2t|t2i|i2t|t2v|i2v|embedding|rerank|tts|asr",
"models": [{"vendor_model_id": "供应商侧模型ID", "capability": "t2t|t2i|i2t|t2v|i2v|r2v|i2i|embedding|rerank|tts|asr",
"sync_mode": "sync|async提交后需轮询查询结果的填 async",
"description": "一句话说明"}],
"pricing": {
@ -728,7 +728,7 @@ async def _h_apply_llm_config(sor, params, ctx):
# 生成类能力:出参是文件(图/视频/音频/3Dresponse 必须 downloadfile2url 落地
_MEDIA_CAPS = ('t2i', 'i2v', 't2v', 't2a', 'tts', 'i2i', 'v2v', '3d')
_MEDIA_CAPS = ('t2i', 'i2v', 't2v', 'r2v', 't2a', 'tts', 'i2i', 'v2v', '3d')
async def _audit_media_convention(sor, profile_ids):
@ -777,7 +777,7 @@ async def _audit_media_convention(sor, profile_ids):
# 能力 → 统一出参键(同类能力对外契约一致:视频出 video、图出 image
_MEDIA_OUT_KEY = {
't2v': 'video', 'i2v': 'video', 'v2v': 'video',
't2v': 'video', 'i2v': 'video', 'v2v': 'video', 'r2v': 'video',
't2i': 'image', 'i2i': 'image',
'tts': 'audio', 't2a': 'audio',
'3d': 'glb',
@ -791,7 +791,7 @@ _MEDIA_TYPES = ('first_frame', 'last_frame', 'ref_image', 'ref_images', 'image',
_MEDIA_KEY_HINTS = ('img_url', 'image_url', 'first_frame_url', 'last_frame_url',
'ref_image_url', 'video_url', 'audio_url')
# 需要「输入媒体」的能力(这些能力里出现 URL 叶子才判定为上传媒体)
_MEDIA_INPUT_CAPS = ('i2v', 'i2i', 'v2v', 'i2t', '2i2v')
_MEDIA_INPUT_CAPS = ('i2v', 'i2i', 'v2v', 'i2t', '2i2v', 'r2v')
def _media_param_name(typeval, keyname):