Files
MiragenFlow/docs/miragenflow-channel-model-logic.workflow.json

371 lines
9.4 KiB
JSON
Raw Permalink 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.
{
"schema_version": 1,
"diagram_type": "workflow",
"meta": {
"title": "元境幻生渠道、模型与智能调度目标逻辑",
"locale": "zh-CN",
"output": "docs/miragenflow-channel-model-logic.html",
"animation": "none",
"visual_preset": "blueprint",
"quality_profile": "showcase",
"viewBox": [930, 590],
"legend": {
"mode": "all",
"entries": {
"frontend": { "label": "管理页面" },
"backend": { "label": "目录与调度" },
"messagebus": { "label": "队列与切换" },
"security": { "label": "状态与治理" },
"external": { "label": "用户与供应商" }
}
},
"views": [
{
"id": "page-responsibilities",
"label": "页面职责",
"focus": ["channel-page", "discovery", "model-page", "group-page", "governance-page"],
"note": "四类管理职责分开,模型发现只提供候选,不再承载无关新增表单。"
},
{
"id": "model-routing",
"label": "模型与路由",
"focus": ["discovery", "model-page", "group-page", "route-policy", "scheduler"],
"note": "公开模型目录与渠道路由池分离,分组内保存明确的渠道优先级。"
},
{
"id": "smart-routing",
"label": "智能调度",
"focus": ["user-task", "scheduler", "queue-node", "worker", "provider"],
"note": "用户只选择公开模型,系统按资格、优先级、健康和负载选择实际渠道。"
},
{
"id": "failure-governance",
"label": "失败与对账",
"focus": ["worker", "fallback", "unknown-result", "reconcile", "governance-page"],
"note": "确认失败才切换,供应商结果未知时暂停结算并进入人工对账。"
}
]
},
"lanes": [
{ "id": "admin", "label": "管理页面" },
{ "id": "catalog", "label": "目录与路由配置" },
{ "id": "runtime", "label": "任务运行时" },
{ "id": "exception", "label": "失败与治理", "variant": "exception" }
],
"groups": [
{ "id": "catalog-boundary", "label": "目录边界", "lane": "catalog", "fromCol": 0, "toCol": 2, "variant": "emphasis" },
{ "id": "routing-boundary", "label": "路由输入", "lane": "catalog", "fromCol": 3, "toCol": 5, "variant": "dashed" },
{ "id": "recovery-boundary", "label": "需要人工判断的异常", "lane": "exception", "fromCol": 2, "toCol": 5, "variant": "security" }
],
"mainPath": ["user-task", "scheduler", "queue-node", "worker", "provider"],
"nodes": [
{
"id": "channel-page",
"lane": "admin",
"col": 0,
"type": "frontend",
"label": "渠道管理",
"sublabel": "地址 · 凭证 · 拉取",
"tag": "现有职责",
"width": 96
},
{
"id": "model-page",
"lane": "admin",
"col": 1,
"type": "frontend",
"label": "模型管理",
"sublabel": "目录 · 参数 · 上架",
"tag": "不手填渠道",
"width": 96
},
{
"id": "group-page",
"lane": "admin",
"col": 3,
"type": "frontend",
"label": "分组管理",
"sublabel": "模型 × 渠道 × 顺序",
"tag": "建立路由池",
"width": 96
},
{
"id": "governance-page",
"lane": "admin",
"col": 5,
"type": "frontend",
"label": "运行治理",
"sublabel": "健康 · 任务 · 审计",
"tag": "独立页面",
"width": 110
},
{
"id": "discovery",
"lane": "catalog",
"col": 0,
"type": "backend",
"label": "模型发现",
"sublabel": "上游列表 → 候选",
"tag": "不自动创建",
"width": 96
},
{
"id": "catalog-node",
"lane": "catalog",
"col": 2,
"type": "backend",
"label": "公开模型目录",
"sublabel": "公开 ID · 能力 · 分辨率",
"tag": "人工上架",
"width": 110
},
{
"id": "route-policy",
"lane": "catalog",
"col": 3,
"type": "backend",
"label": "路由策略",
"sublabel": "资格 · 优先级 · 版本",
"tag": "调度输入",
"width": 96
},
{
"id": "provider",
"lane": "catalog",
"col": 5,
"type": "external",
"label": "上游供应商",
"sublabel": "公开 ID ≠ 请求 ID",
"tag": "外部接口",
"width": 110
},
{
"id": "user-task",
"lane": "runtime",
"col": 0,
"type": "external",
"label": "用户任务",
"sublabel": "选择公开模型",
"tag": "不暴露供应商",
"width": 96
},
{
"id": "scheduler",
"lane": "runtime",
"col": 2,
"type": "backend",
"label": "智能调度",
"sublabel": "过滤 · 排序 · 选路",
"tag": "保存策略快照",
"width": 110
},
{
"id": "queue-node",
"lane": "runtime",
"col": 3,
"type": "messagebus",
"label": "任务队列",
"sublabel": "幂等入队 · 租约",
"tag": "异步",
"width": 86
},
{
"id": "worker",
"lane": "runtime",
"col": 5,
"type": "backend",
"label": "任务执行",
"sublabel": "尝试 · 结果 · 结算",
"tag": "记录每次调用",
"width": 106
},
{
"id": "fallback",
"lane": "exception",
"col": 2,
"type": "messagebus",
"label": "故障切换",
"sublabel": "下一候选渠道",
"width": 72
},
{
"id": "unknown-result",
"lane": "exception",
"col": 3,
"type": "security",
"label": "未知结果",
"sublabel": "暂停结算与重试",
"width": 60
},
{
"id": "reconcile",
"lane": "exception",
"col": 5,
"type": "frontend",
"label": "人工对账",
"sublabel": "确认成功或失败",
"tag": "恢复闭环",
"width": 100
}
],
"edges": [
{
"id": "channel-discovery",
"from": "channel-page",
"to": "discovery",
"label": "主动拉取",
"variant": "emphasis",
"route": "drop",
"fromSide": "bottom",
"toSide": "top",
"labelAt": [150, 166]
},
{
"id": "discovery-model",
"from": "discovery",
"to": "model-page",
"variant": "emphasis"
},
{
"id": "catalog-model",
"from": "model-page",
"to": "catalog-node",
"label": "维护公开参数",
"variant": "emphasis",
"route": "drop",
"fromSide": "bottom",
"toSide": "top",
"labelAt": [320, 166]
},
{
"id": "model-group",
"from": "model-page",
"to": "group-page"
},
{
"id": "group-route",
"from": "group-page",
"to": "route-policy",
"variant": "emphasis",
"route": "drop",
"fromSide": "bottom",
"toSide": "top"
},
{
"id": "governance-route",
"from": "governance-page",
"to": "route-policy",
"label": "健康进入策略",
"variant": "dashed",
"route": "drop",
"fromSide": "bottom",
"toSide": "top",
"bias": 0.5,
"labelAt": [530, 166]
},
{
"id": "route-scheduler",
"from": "route-policy",
"to": "scheduler",
"label": "发布策略版本",
"variant": "emphasis",
"route": "drop",
"fromSide": "bottom",
"toSide": "top",
"labelAt": [365, 290]
},
{
"id": "submit-task",
"from": "user-task",
"to": "scheduler",
"label": "公开模型 + 参数",
"variant": "emphasis"
},
{
"id": "schedule-queue",
"from": "scheduler",
"to": "queue-node",
"variant": "emphasis",
"route": "straight",
"fromSide": "right",
"toSide": "left"
},
{
"id": "queue-worker",
"from": "queue-node",
"to": "worker",
"label": "租约执行",
"role": "async",
"labelAt": [525, 367]
},
{
"id": "call-provider",
"from": "worker",
"to": "provider",
"variant": "emphasis"
},
{
"id": "provider-result",
"from": "provider",
"to": "worker",
"variant": "dashed",
"role": "return",
"route": "outside-right",
"fromSide": "right",
"toSide": "right",
"channelX": 740
},
{
"id": "retryable-failure",
"from": "worker",
"to": "fallback",
"variant": "security",
"role": "error",
"route": "drop",
"fromSide": "bottom",
"toSide": "top"
},
{
"id": "next-candidate",
"from": "fallback",
"to": "scheduler",
"variant": "dashed",
"role": "return",
"route": "straight",
"fromSide": "top",
"toSide": "bottom"
},
{
"id": "unknown-provider-result",
"from": "provider",
"to": "unknown-result",
"variant": "security",
"role": "error",
"via": [[760, 243], [760, 540], [430, 540]],
"fromSide": "right",
"toSide": "bottom",
"labelAt": [760, 540]
},
{
"id": "manual-reconcile",
"from": "unknown-result",
"to": "reconcile",
"label": "人工确认",
"variant": "security",
"role": "error"
}
],
"cards": [
{
"dot": "cyan",
"title": "职责分层:渠道 / 模型 / 分组 / 套餐",
"items": []
},
{
"dot": "emerald",
"title": "调度闭环:过滤 / 优先级 / 健康 / 对账",
"items": []
}
]
}