diff --git a/ui/src/conversation-panel/components/message-input/user-form/index.vue b/ui/src/conversation-panel/components/message-input/user-form/index.vue index 5832586373f..cbe28aa4413 100644 --- a/ui/src/conversation-panel/components/message-input/user-form/index.vue +++ b/ui/src/conversation-panel/components/message-input/user-form/index.vue @@ -230,8 +230,8 @@ onBeforeUnmount(() => { /> - - + + { virtual-triggering trigger="manual" placement="top-start" - :width="400" - :popper-style="{ padding: '16px 8px' }" + :width="420" @show="userForm.saveSnapshot" > -
{{ menuTitle }}
- - - - -
- - 取消 - - 确认 +
+

{{ menuTitle }}

+ + + + +
+ + 确认 + + 取消 +
@@ -271,7 +272,7 @@ onBeforeUnmount(() => { /* 行内开关与下拉框同高同边框(主题将开关高度改为 22px),标签固定为常规文字色,不随开关状态高亮。 */ :deep(.mk-conversation-user-form__switch) { box-sizing: border-box; - height: var(--el-component-size); + height: 32px; justify-content: space-between; padding: 0 12px; border: 1px solid var(--el-border-color); @@ -281,7 +282,7 @@ onBeforeUnmount(() => { min-width: 0; max-width: 56px; margin-right: 8px; - color: var(--el-text-color-regular); + color: var(--mk-N900); span { display: block; diff --git a/ui/src/workflow-canvas/WORKFLOW_README.md b/ui/src/workflow-canvas/WORKFLOW_README.md index 4aeb7b8c72c..1673286a0b1 100644 --- a/ui/src/workflow-canvas/WORKFLOW_README.md +++ b/ui/src/workflow-canvas/WORKFLOW_README.md @@ -540,6 +540,8 @@ MkFormList 的排序、增删均以 `cloneDeep` 回写;MkTable 保留普通行 当前用于应用工作流及循环体,根据用户需求规划、创建节点、连线与配置字段。 页面通过 WorkflowCanvas.getLogicFlow() 提供画布,生成结果只改图,不自动保存。 +模型选择支持参数设置,不提供添加模型入口;优先沿用默认 LLM 的参数,切换模型加载对应默认参数。 +首轮生成时固定模型及参数,父 agent 和委派的子 agent 共用,并通过 `model_params_setting` 传入补全请求;新建会话后可重新配置。 | 位置 | 职责 | | --------------- | -------------------------------------------------------- | diff --git a/ui/src/workflow-canvas/ai-generate/common.ts b/ui/src/workflow-canvas/ai-generate/common.ts index a018f412197..4d2c1f4e2c5 100644 --- a/ui/src/workflow-canvas/ai-generate/common.ts +++ b/ui/src/workflow-canvas/ai-generate/common.ts @@ -31,6 +31,7 @@ export function useAgentConfig(config: AgentConfig, bindings: AgentBindings): Ru messages, tools: config.tools, modelId: bindings.modelId, + modelParams: bindings.modelParams, resourceScope: bindings.resourceScope, call: bindings.call, position: bindings.position ?? [], diff --git a/ui/src/workflow-canvas/ai-generate/create-agent.ts b/ui/src/workflow-canvas/ai-generate/create-agent.ts index c1266c1b251..3ce384f6d9c 100644 --- a/ui/src/workflow-canvas/ai-generate/create-agent.ts +++ b/ui/src/workflow-canvas/ai-generate/create-agent.ts @@ -42,7 +42,7 @@ function toExecutor(value: unknown): Executor { * 某工具返回 AgentSuccessResult / AgentErrorResult 结束、被停止或超过轮次。工具返回 ErrorResult 或抛错时把错误回喂模型自愈。 */ export function createAgent(agent: RunnableAgent): AgentHandle { - const { tools, modelId, resourceScope, call, position, maxIterations } = agent + const { tools, modelId, modelParams, resourceScope, call, position, maxIterations } = agent const controller = new AbortController() const stopCallbacks: Array<() => void> = [] const messages: AgentMessage[] = agent.messages @@ -72,7 +72,7 @@ export function createAgent(agent: RunnableAgent): AgentHandle { if (controller.signal.aborted) return finish({ status: 'stopped' }) if (iteration > maxIterations) return finish({ status: 'error', data: `超过最大轮次 ${maxIterations}` }) - const response = await runTurn(resourceScope, modelId, messages, tools, emit, controller.signal) + const response = await runTurn(resourceScope, modelId, modelParams, messages, tools, emit, controller.signal) const toolCalls = response.toolCalls ?? [] const assistantMessage: AgentMessage = { role: 'assistant', content: response.content || '' } // thinking 模型要求思考内容按原字段名回传,否则下一轮请求会被拒绝 @@ -124,6 +124,7 @@ export function createAgent(agent: RunnableAgent): AgentHandle { function runTurn( resourceScope: string, modelId: string, + modelParams: Record | undefined, messages: AgentMessage[], tools: AgentTool[], emit: (payload: AgentPayload) => void, @@ -154,7 +155,7 @@ function runTurn( else reject(new Error('本轮结束但未收到完整结果')) }, } - chatCompletion(resourceScope, modelId, { messages, tools: toToolSchemas(tools) }, sink, signal) + chatCompletion(resourceScope, modelId, { messages, tools: toToolSchemas(tools), model_params_setting: modelParams }, sink, signal) }) } diff --git a/ui/src/workflow-canvas/ai-generate/panel/AiGeneratePanel.vue b/ui/src/workflow-canvas/ai-generate/panel/AiGeneratePanel.vue index ee31d083b9a..5315ae9f833 100644 --- a/ui/src/workflow-canvas/ai-generate/panel/AiGeneratePanel.vue +++ b/ui/src/workflow-canvas/ai-generate/panel/AiGeneratePanel.vue @@ -1,6 +1,7 @@