diff --git a/panel.js b/panel.js index 458bfce..2d307e6 100644 --- a/panel.js +++ b/panel.js @@ -121,8 +121,8 @@ const DEFAULT_PROMPTS = { }; const TASK_PROFILE_TABS = [ - { id: "prompt", label: "Prompt 编排" }, { id: "generation", label: "生成参数" }, + { id: "prompt", label: "Prompt 编排" }, { id: "regex", label: "正则" }, ]; @@ -284,7 +284,7 @@ let mobileGraphRenderer = null; let currentTabId = "dashboard"; let currentConfigSectionId = "api"; let currentTaskProfileTaskType = "extract"; -let currentTaskProfileTabId = "prompt"; +let currentTaskProfileTabId = "generation"; let currentTaskProfileBlockId = ""; let currentTaskProfileRuleId = ""; let fetchedMemoryLLMModels = []; @@ -1636,7 +1636,7 @@ function _getTaskProfileWorkspaceState(settings = _getSettings?.() || {}) { } if (!TASK_PROFILE_TABS.some((item) => item.id === currentTaskProfileTabId)) { - currentTaskProfileTabId = TASK_PROFILE_TABS[0]?.id || "prompt"; + currentTaskProfileTabId = TASK_PROFILE_TABS[0]?.id || "generation"; } const bucket = taskProfiles[currentTaskProfileTaskType] || { @@ -1916,7 +1916,7 @@ function _renderTaskProfileWorkspace(state) { -
+
+ + +
+ ${state.blocks.length} 个块
@@ -2042,7 +2046,7 @@ function _renderTaskPromptTab(state) { function _renderTaskGenerationTab(state) { return ` -
+
${TASK_PROFILE_GENERATION_GROUPS.map( (group) => `
@@ -2064,11 +2068,8 @@ function _renderTaskGenerationTab(state) {
`, ).join("")} -
-
运行时说明
-
- 这里配置的是完整版 generation options。实际请求发送前,仍会根据模型能力做过滤,避免把不支持的字段直接下发给 provider。 -
+
+ 运行时说明 — 这里配置的是完整版 generation options。实际请求发送前,仍会根据模型能力做过滤,避免把不支持的字段直接下发给 provider。
`; @@ -2077,7 +2078,8 @@ function _renderTaskGenerationTab(state) { function _renderTaskRegexTab(state) { const regex = state.profile.regex || {}; return ` -
+
+
@@ -2139,9 +2141,28 @@ function _renderTaskRegexTab(state) { .join("")}
- +
- ${TASK_PROFILE_REGEX_STAGES.map( + ${TASK_PROFILE_REGEX_STAGES.filter((s) => !s.key.startsWith("output.") && s.key !== "rawResponse" && s.key !== "beforeParse").map( + (stage) => ` + + `, + ).join("")} +
+ + +
+ ${TASK_PROFILE_REGEX_STAGES.filter((s) => s.key.startsWith("output.") || s.key === "rawResponse" || s.key === "beforeParse").map( (stage) => `
@@ -2184,6 +2205,7 @@ function _renderTaskRegexTab(state) { `}
+
${_renderRegexRuleEditor(state)} diff --git a/style.css b/style.css index 4cf9bda..1913c92 100644 --- a/style.css +++ b/style.css @@ -1334,7 +1334,12 @@ color: var(--bme-primary); } -.bme-task-header-grid, +.bme-task-header-fields { + display: flex; + flex-direction: column; + gap: 10px; +} + .bme-task-field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); @@ -1350,25 +1355,51 @@ flex-wrap: wrap; } +.bme-task-action-sep { + width: 1px; + height: 20px; + background: rgba(255, 255, 255, 0.08); + flex-shrink: 0; +} + +.bme-task-btn-danger { + color: var(--bme-on-surface-dim); +} + +.bme-task-btn-danger:hover { + border-color: #e94560; + color: #e94560; + background: rgba(233, 69, 96, 0.08); +} + .bme-task-tab-body { display: flex; flex-direction: column; gap: 14px; } -.bme-task-editor-grid, -.bme-task-generation-grid { +.bme-task-editor-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; } -.bme-task-regex-grid { +.bme-task-regex-top { display: grid; - grid-template-columns: repeat(3, minmax(0, 1fr)); + grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; } +.bme-task-block-count { + font-size: 11px; + color: var(--bme-on-surface-dim); + white-space: nowrap; +} + +.bme-task-builtin-select { + max-width: 200px; +} + .bme-task-toolbar-row { display: flex; align-items: center; @@ -1755,11 +1786,9 @@ .bme-config-grid-2, .bme-theme-card-grid, - .bme-task-header-grid, .bme-task-field-grid, .bme-task-editor-grid, - .bme-task-generation-grid, - .bme-task-regex-grid { + .bme-task-regex-top { grid-template-columns: 1fr; }