feat(platform): 提取提示词能力枚举加m2t+判定表补文本输出侧三规则(2026-09-06用户定夺)

- 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 叶子判上传媒体)
This commit is contained in:
yumoqing 2026-09-06 19:33:12 +08:00
parent 9c5378df17
commit 3c0de3bad4

View File

@ -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):