From 3c0de3bad487090fdf1ca4fe76c789ccd1b0ebfa Mon Sep 17 00:00:00 2001 From: yumoqing Date: Sun, 6 Sep 2026 19:33:12 +0800 Subject: [PATCH] =?UTF-8?q?feat(platform):=20=E6=8F=90=E5=8F=96=E6=8F=90?= =?UTF-8?q?=E7=A4=BA=E8=AF=8D=E8=83=BD=E5=8A=9B=E6=9E=9A=E4=B8=BE=E5=8A=A0?= =?UTF-8?q?m2t+=E5=88=A4=E5=AE=9A=E8=A1=A8=E8=A1=A5=E6=96=87=E6=9C=AC?= =?UTF-8?q?=E8=BE=93=E5=87=BA=E4=BE=A7=E4=B8=89=E8=A7=84=E5=88=99(2026-09-?= =?UTF-8?q?06=E7=94=A8=E6=88=B7=E5=AE=9A=E5=A4=BA)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - capability 枚举加 m2t(多媒体生文)——会话agent可选模型范围 t2t/i2t/m2t 的字典侧 - 判定表补「仅图像(+文本)→文本 ⇒ i2t」「多种媒体输入→文本 ⇒ m2t」「仅文本→文本 ⇒ t2t」, 堵住此前只有视频/图像输出侧判定、文本输出侧全靠 LLM 猜的缺口(wan3.0 误判同类根因) - r2v 判定加「且输出为视频」限定:原文「多种媒体输入⇒r2v」会把多媒体理解模型 (如 qwen-vl 类 i2t/m2t)误吸进 r2v——输出模态必须同时满足 - _MEDIA_INPUT_CAPS 加 m2t:模板生成把 m2t 按输入媒体能力处理(URL 叶子判上传媒体) --- pipeline_platform/platform_ability.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/pipeline_platform/platform_ability.py b/pipeline_platform/platform_ability.py index 3bdc8ae..3824ad8 100644 --- a/pipeline_platform/platform_ability.py +++ b/pipeline_platform/platform_ability.py @@ -358,7 +358,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|r2v|i2i|embedding|rerank|tts|asr|mm-embedding|mm-rerank", + "models": [{"vendor_model_id": "供应商侧模型ID", "capability": "t2t|t2i|i2t|m2t|t2v|i2v|r2v|i2i|embedding|rerank|tts|asr|mm-embedding|mm-rerank", "sync_mode": "sync|async(提交后需轮询查询结果的填 async)", "description": "一句话说明"}], "pricing": { @@ -386,9 +386,10 @@ _EXTRACT_PROMPT = """你是大模型 API 配置专家。通读下面这份模型 - capability 必须以文档**概述正文 + 输入/输出模态声明**为准,禁止以调用示例为准—— 示例常只演示最简形态(纯文本 prompt),照示例判会把多媒体参考模型误判成纯文本模型。 - 判定表(输入模态 → 输出模态 ⇒ 能力): - 多种媒体输入或正文含「参考/reference/全能参考/多图/多模态输入」⇒ r2v(即使示例只有文本); + 多种媒体输入或正文含「参考/reference/全能参考/多图/多模态输入」且输出为视频 ⇒ r2v(即使示例只有文本); 图像+文本 → 视频 ⇒ i2v;仅文本 → 视频 ⇒ t2v;仅文本 → 图像 ⇒ t2i;图像 → 图像 ⇒ i2i; - 视频 → 视频 ⇒ v2v 类按字典就近;文本 → 音频 ⇒ tts;音频 → 文本 ⇒ asr。 + 视频 → 视频 ⇒ v2v 类按字典就近;文本 → 音频 ⇒ tts;音频 → 文本 ⇒ asr; + 仅图像(+文本) → 文本 ⇒ i2t;多种媒体输入(图+视频/音频等任意组合)(+文本) → 文本 ⇒ m2t;仅文本 → 文本 ⇒ t2t。 - description 里必须保留正文的模态声明原文关键词(如"支持四模态全能参考"),供下游一致性校验。 定价规则: @@ -927,7 +928,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', 'r2v') +_MEDIA_INPUT_CAPS = ('i2v', 'i2i', 'v2v', 'i2t', 'm2t', '2i2v', 'r2v') def _media_param_name(typeval, keyname):