306 lines
17 KiB
XML
Raw 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.

{
"widgettype": "VBox",
"options": {
"width": "100%",
"height": "100%",
"padding": "0"
},
"subwidgets": [
{
"widgettype": "HBox",
"options": {
"width": "100%",
"alignItems": "center",
"marginBottom": "24px"
},
"subwidgets": [
{
"widgettype": "Title2",
"options": {
"text": "模型治理"
}
},
{
"widgettype": "Filler"
},
{
"widgettype": "Text",
"options": {
"text": "供应商/账号/模型 · 容错策略 · 限额限流 · 双维度记账 · 点击卡片弹窗处理",
"cfontsize": 1.2
}
}
]
},
{
"widgettype": "urlwidget",
"options": {
"url": "{{entire_url('/pipeline-llm/api/llm_dashboard_widget.dspy')}}"
}
},
{
"widgettype": "VScrollPanel",
"options": {
"css": "filler"
},
"subwidgets": [
{
"widgettype": "VBox",
"options": {
"spacing": 24
},
"subwidgets": [
{
"widgettype": "ResponsableBox",
"options": {
"gap": "16px",
"minWidth": "300px"
},
"subwidgets": [
{
"widgettype": "VBox",
"options": {
"css": "card",
"cwidth": 25,
"padding": "16px",
"cursor": "pointer"
},
"binds": [
{
"wid": "self",
"event": "click",
"actiontype": "script",
"target": "self",
"script": "var old=bricks.getWidgetById('llm_card_pw',bricks.app);if(old&&old.destroy){old.destroy();}var r=await fetch('{{entire_url('/pipeline-llm/api/card_popup.dspy')}}?target=llm_vendor');var d=await r.json();if(d&&d.widgettype){bricks.widgetBuild(d,bricks.app);}else{bricks.show_message({title:'打开失败',message:'未能加载功能窗口'});}"
}
],
"subwidgets": [
{
"widgettype": "Title4",
"options": {
"text": "供应商与端点",
"marginBottom": "8px"
}
},
{
"widgettype": "Text",
"options": {
"text": "供应商协议 + 全球端点目录(国内/国际,配置一次全账号共用)",
"cfontsize": 1.2
}
}
]
},
{
"widgettype": "VBox",
"options": {
"css": "card",
"cwidth": 25,
"padding": "16px",
"cursor": "pointer"
},
"binds": [
{
"wid": "self",
"event": "click",
"actiontype": "script",
"target": "self",
"script": "var old=bricks.getWidgetById('llm_card_pw',bricks.app);if(old&&old.destroy){old.destroy();}var r=await fetch('{{entire_url('/pipeline-llm/api/card_popup.dspy')}}?target=llm_model');var d=await r.json();if(d&&d.widgettype){bricks.widgetBuild(d,bricks.app);}else{bricks.show_message({title:'打开失败',message:'未能加载功能窗口'});}"
}
],
"subwidgets": [
{
"widgettype": "Title4",
"options": {
"text": "模型注册",
"marginBottom": "8px"
}
},
{
"widgettype": "Text",
"options": {
"text": "能力分类t2t/…、挂定价项目ppid、成本/售价 · 🤖自动配置 · ✅上线检查",
"cfontsize": 1.2
}
}
]
},
{
"widgettype": "VBox",
"options": {
"css": "card",
"cwidth": 25,
"padding": "16px",
"cursor": "pointer"
},
"binds": [
{
"wid": "self",
"event": "click",
"actiontype": "script",
"target": "self",
"script": "var old=bricks.getWidgetById('llm_card_pw',bricks.app);if(old&&old.destroy){old.destroy();}var r=await fetch('{{entire_url('/pipeline-llm/api/card_popup.dspy')}}?target=llm_api_profile');var d=await r.json();if(d&&d.widgettype){bricks.widgetBuild(d,bricks.app);}else{bricks.show_message({title:'打开失败',message:'未能加载功能窗口'});}"
}
],
"subwidgets": [
{
"widgettype": "Title4",
"options": {
"text": "适配模板",
"marginBottom": "8px"
}
},
{
"widgettype": "Text",
"options": {
"text": "协议×能力形态的请求/响应模板(按形态去重,不按模型开)",
"cfontsize": 1.2
}
}
]
},
{
"widgettype": "VBox",
"options": {
"css": "card",
"cwidth": 25,
"padding": "16px",
"cursor": "pointer"
},
"binds": [
{
"wid": "self",
"event": "click",
"actiontype": "script",
"target": "self",
"script": "var old=bricks.getWidgetById('llm_card_pw',bricks.app);if(old&&old.destroy){old.destroy();}var r=await fetch('{{entire_url('/pipeline-llm/api/card_popup.dspy')}}?target=llm_org_policy');var d=await r.json();if(d&&d.widgettype){bricks.widgetBuild(d,bricks.app);}else{bricks.show_message({title:'打开失败',message:'未能加载功能窗口'});}"
}
],
"subwidgets": [
{
"widgettype": "Title4",
"options": {
"text": "组织容错策略",
"marginBottom": "8px"
}
},
{
"widgettype": "Text",
"options": {
"text": "组织级主模型 + 备模型链 + 端点偏好prefer/must",
"cfontsize": 1.2
}
}
]
},
{
"widgettype": "VBox",
"options": {
"css": "card",
"cwidth": 25,
"padding": "16px",
"cursor": "pointer"
},
"binds": [
{
"wid": "self",
"event": "click",
"actiontype": "script",
"target": "self",
"script": "var old=bricks.getWidgetById('llm_card_pw',bricks.app);if(old&&old.destroy){old.destroy();}var r=await fetch('{{entire_url('/pipeline-llm/api/card_popup.dspy')}}?target=llm_org_quota');var d=await r.json();if(d&&d.widgettype){bricks.widgetBuild(d,bricks.app);}else{bricks.show_message({title:'打开失败',message:'未能加载功能窗口'});}"
}
],
"subwidgets": [
{
"widgettype": "Title4",
"options": {
"text": "组织限额限流",
"marginBottom": "8px"
}
},
{
"widgettype": "Text",
"options": {
"text": "组织池充值/余额 + 组织 QPM 上限",
"cfontsize": 1.2
}
}
]
},
{
"widgettype": "VBox",
"options": {
"css": "card",
"cwidth": 25,
"padding": "16px",
"cursor": "pointer"
},
"binds": [
{
"wid": "self",
"event": "click",
"actiontype": "script",
"target": "self",
"script": "var old=bricks.getWidgetById('llm_card_pw',bricks.app);if(old&&old.destroy){old.destroy();}var r=await fetch('{{entire_url('/pipeline-llm/api/card_popup.dspy')}}?target=llm_user_quota');var d=await r.json();if(d&&d.widgettype){bricks.widgetBuild(d,bricks.app);}else{bricks.show_message({title:'打开失败',message:'未能加载功能窗口'});}"
}
],
"subwidgets": [
{
"widgettype": "Title4",
"options": {
"text": "个人限额限流",
"marginBottom": "8px"
}
},
{
"widgettype": "Text",
"options": {
"text": "个人额度上限 + 个人 QPM共享组织池模式",
"cfontsize": 1.2
}
}
]
},
{
"widgettype": "VBox",
"options": {
"css": "card",
"cwidth": 25,
"padding": "16px",
"cursor": "pointer"
},
"binds": [
{
"wid": "self",
"event": "click",
"actiontype": "script",
"target": "self",
"script": "var old=bricks.getWidgetById('llm_card_pw',bricks.app);if(old&&old.destroy){old.destroy();}var r=await fetch('{{entire_url('/pipeline-llm/api/card_popup.dspy')}}?target=llm_usage');var d=await r.json();if(d&&d.widgettype){bricks.widgetBuild(d,bricks.app);}else{bricks.show_message({title:'打开失败',message:'未能加载功能窗口'});}"
}
],
"subwidgets": [
{
"widgettype": "Title4",
"options": {
"text": "用量流水",
"marginBottom": "8px"
}
},
{
"widgettype": "Text",
"options": {
"text": "双维度记账:成本侧(账号)+ 消费侧(组织/个人)",
"cfontsize": 1.2
}
}
]
}
]
}
]
}
]
}
]
}