yumoqing 89acb08ea9 fix(platform): r2v媒体字段非必填+合成模板media键条件渲染(2026-09-06用户纠正)
用户纠正:wan3.0全能参考三种媒体一个不传=纯文生视频(t2v),完全合法(文档明示
「prompt和media必填其一」「文生视频不传入任何媒体文件」)。此前required=True把
合法t2v/部分组合模式堵死,且无条件渲染发出"media": []空数组(文档t2v形态不带
media键,API未承诺接受空数组,不能赌)。

- _build_param_schema: 媒体字段一律required=False(prompt保持必填作锚);
  纯参考模型空媒体提交由API拒绝+test_model_call当场暴露,非静默失败
- r2v合成模板media键包Jinja条件:有媒体渲染media键,零媒体整个省略,
  两形态逐字对齐官方API参考(wan3-video-generation-api-reference已核实)
- 拼接空格防"{{%"词法错(单测实抓)
- _dry_render_check增零媒体形态干跑(StrictUndefined下测空数组[],不测缺键)
- 单测9项:零媒体省略/部分组合/三模态顺序/干跑/schema非必填
2026-09-06 20:45:44 +08:00

pipeline-platform

产线平台内部 agent 模块(宿主不装则零接触)。

内容

  • 能力包 pipeline_platform/platform_ability.pypipeline_id=platform_general
    • platform_llm_status — 模型治理状态(供应商/账号余额/模型定价)
    • fetch_model_doc — 抓取模型 API 文档SSRF 防护:仅公网域名)
    • extract_llm_api_spec — LLM 通读文档提取配置规格(端点/协议/定价)
    • apply_llm_config — 写入配置(幂等:供应商按名复用、模型按 (vendor, vendor_model_id) 只更新定价)
    • platform_modules — 平台模块清单
  • 前端入口 wwwroot/agent_platform/index.ui:主菜单「平台内部助手」(仅管理员可见)
  • 技能随 pipeline-core skills_library/pipelines/platform_general/ 分发(平台架构地图 + 模型自动配置工作流)

权限

所有工具仅 owner.superuser / owner.admin 可用,代码层硬门禁(每个 handler 入口校验 RBAC 角色),不依赖 prompt。菜单入口同样 Jinja {% if is_admin %} 门控。

定价真实性规则

  • 定价只允许来自文档原文,文档没写一律 null禁止编造
  • 单位统一「元/千tokens」元/百万 ÷1000
  • 非 openai_compat 协议的模板存档但运行时不可调,如实告知

宿主集成(已接入)

  • pipeline-app/build.shclone/pip install/wwwroot 软链列表已含本模块
  • pipeline-app/app/pipeline_app.pyload_pipeline_platform()(在 load_pipeline_service 之后)
Description
No description provided
Readme 25 KiB