- Create llm_catalog_rel model for one-to-many relationship - Remove llmcatelogid from llm model - Update SQL queries in utils.py and dspy files to use join - Add maintenance UI (llm_catalog_rel_manage.ui) and API endpoints - Filter options by user's orgid
146 lines
3.9 KiB
XML
146 lines
3.9 KiB
XML
{
|
|
"widgettype": "VBox",
|
|
"options": {
|
|
"width": "100%",
|
|
"height": "100%",
|
|
"spacing": 16
|
|
},
|
|
"subwidgets": [
|
|
{
|
|
"widgettype": "Title2",
|
|
"options": {
|
|
"text": "LLM 目录关联管理",
|
|
"halign": "left"
|
|
}
|
|
},
|
|
{
|
|
"widgettype": "VBox",
|
|
"options": {
|
|
"width": "calc(100% - 40px)",
|
|
"margin": "0 20px",
|
|
"padding": "16px",
|
|
"bgcolor": "#f5f5f5",
|
|
"spacing": 12
|
|
},
|
|
"subwidgets": [
|
|
{
|
|
"widgettype": "Text",
|
|
"options": {
|
|
"text": "添加新关联",
|
|
"fontSize": "16px",
|
|
"fontWeight": "bold"
|
|
}
|
|
},
|
|
{
|
|
"widgettype": "Form",
|
|
"id": "add_form",
|
|
"options": {
|
|
"layout": "horizontal",
|
|
"cols": 3,
|
|
"fields": [
|
|
{
|
|
"name": "llmid",
|
|
"label": "选择模型",
|
|
"uitype": "select",
|
|
"dataurl": "{{entire_url('./api/llm_catelog_options.dspy')}}",
|
|
"data_field": "llms",
|
|
"placeholder": "请选择模型"
|
|
},
|
|
{
|
|
"name": "llmcatelogid",
|
|
"label": "选择目录",
|
|
"uitype": "select",
|
|
"dataurl": "{{entire_url('./api/llm_catelog_options.dspy')}}",
|
|
"data_field": "catelogs",
|
|
"placeholder": "请选择目录"
|
|
}
|
|
],
|
|
"buttons": [
|
|
{
|
|
"name": "add_btn",
|
|
"label": "添加关联",
|
|
"variant": "primary"
|
|
}
|
|
]
|
|
},
|
|
"binds": [
|
|
{
|
|
"wid": "add_btn",
|
|
"event": "click",
|
|
"actiontype": "urlwidget",
|
|
"target": "PopupWindow",
|
|
"popup_options": {"archor": "cc", "width": "30%", "height": "20%"},
|
|
"options": {
|
|
"url": "{{entire_url('./api/llm_catalog_rel_create.dspy')}}",
|
|
"params": {
|
|
"llmid": "$[add_form.llmid]$",
|
|
"llmcatelogid": "$[add_form.llmcatelogid]$"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"widgettype": "VBox",
|
|
"options": {
|
|
"width": "calc(100% - 40px)",
|
|
"margin": "0 20px",
|
|
"spacing": 12
|
|
},
|
|
"subwidgets": [
|
|
{
|
|
"widgettype": "Text",
|
|
"options": {
|
|
"text": "当前关联列表",
|
|
"fontSize": "16px",
|
|
"fontWeight": "bold"
|
|
}
|
|
},
|
|
{
|
|
"widgettype": "Tabular",
|
|
"id": "rel_table",
|
|
"options": {
|
|
"width": "100%",
|
|
"height": "400px",
|
|
"data_url": "{{entire_url('./api/llm_catalog_rel_list.dspy')}}",
|
|
"data_method": "GET",
|
|
"page_rows": 20,
|
|
"row_options": {
|
|
"fields": [
|
|
{"name": "llm_name", "title": "模型名称", "width": 200},
|
|
{"name": "catelog_name", "title": "目录名称", "width": 150},
|
|
{
|
|
"name": "actions",
|
|
"title": "操作",
|
|
"width": 100,
|
|
"uitype": "button",
|
|
"data": [
|
|
{"text": "删除", "event": "delete_rel"}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"binds": [
|
|
{
|
|
"wid": "self",
|
|
"event": "delete_rel",
|
|
"actiontype": "urlwidget",
|
|
"target": "PopupWindow",
|
|
"popup_options": {"archor": "cc", "width": "30%", "height": "20%"},
|
|
"options": {
|
|
"url": "{{entire_url('./api/llm_catalog_rel_delete.dspy')}}",
|
|
"params": {
|
|
"id": "$[event.params.id]$"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|