From fad4ce9cd0caece1c375735ef96c1517e2990e23 Mon Sep 17 00:00:00 2001 From: wangdan-fit2cloud Date: Thu, 11 Sep 2025 17:17:13 +0800 Subject: [PATCH] feat: The model directly generates optimized prompt words --- .../component/chat-input-operate/index.vue | 3 +- .../components/app-icon/icons/application.ts | 22 ++ ui/src/components/common-list/index.vue | 4 +- ui/src/components/folder-tree/index.vue | 4 +- .../locales/lang/en-US/views/application.ts | 6 +- .../locales/lang/zh-CN/views/application.ts | 9 +- .../locales/lang/zh-Hant/views/application.ts | 6 +- ui/src/styles/app.scss | 8 +- ui/src/styles/component.scss | 3 + ui/src/styles/element-plus.scss | 3 +- ui/src/styles/variables.scss | 6 +- .../views/application/ApplicationSetting.vue | 78 +++-- ...atePrompt.vue => GeneratePromptDialog.vue} | 275 ++++++++---------- ui/src/views/model/component/Provider.vue | 10 +- .../component/PermissionTable.vue | 4 +- ui/src/workflow/nodes/ai-chat-node/index.vue | 50 +++- 16 files changed, 271 insertions(+), 220 deletions(-) rename ui/src/views/application/component/{GeneratePrompt.vue => GeneratePromptDialog.vue} (54%) diff --git a/ui/src/components/ai-chat/component/chat-input-operate/index.vue b/ui/src/components/ai-chat/component/chat-input-operate/index.vue index 3156feaf0..cb4d7c983 100644 --- a/ui/src/components/ai-chat/component/chat-input-operate/index.vue +++ b/ui/src/components/ai-chat/component/chat-input-operate/index.vue @@ -3,8 +3,7 @@
- {{ $t('chat.operation.stopChat') }} + {{ $t('chat.operation.stopChat') }}
diff --git a/ui/src/components/app-icon/icons/application.ts b/ui/src/components/app-icon/icons/application.ts index 73d04b54f..756790aab 100644 --- a/ui/src/components/app-icon/icons/application.ts +++ b/ui/src/components/app-icon/icons/application.ts @@ -718,4 +718,26 @@ export default { ]) }, }, + + 'app-generate-star': { + iconReader: () => { + return h('i', [ + h( + 'svg', + { + style: { height: '100%', width: '100%' }, + viewBox: '0 0 1024 1024', + version: '1.1', + xmlns: 'http://www.w3.org/2000/svg', + }, + [ + h('path', { + d: 'M384 832c-12.8 0-25.6-8.533333-29.866667-21.333333l-34.133333-119.466667c-17.066667-55.466667-55.466667-93.866667-110.933333-110.933333L85.333333 541.866667c-12.8-4.266667-21.333333-17.066667-21.333333-29.866667 0-12.8 8.533333-25.6 21.333333-29.866667l119.466667-34.133333c55.466667-17.066667 93.866667-55.466667 110.933333-110.933333L354.133333 213.333333c4.266667-12.8 17.066667-21.333333 29.866667-21.333333 12.8 0 25.6 8.533333 29.866667 21.333333l34.133333 119.466667c17.066667 55.466667 55.466667 93.866667 110.933333 110.933333l119.466667 34.133334c12.8 4.266667 21.333333 17.066667 21.333333 29.866666 0 12.8-8.533333 25.6-21.333333 29.866667l-119.466667 34.133333c-55.466667 17.066667-93.866667 55.466667-110.933333 110.933334l-34.133333 128c-4.266667 12.8-17.066667 21.333333-29.866667 21.333333z m384-384c-12.8 0-25.6-8.533333-29.866667-25.6l-12.8-42.666667c-8.533333-38.4-42.666667-72.533333-81.066666-81.066666l-42.666667-12.8c-12.8-4.266667-25.6-17.066667-25.6-29.866667 0-12.8 8.533333-25.6 25.6-29.866667l42.666667-12.8c38.4-8.533333 72.533333-42.666667 81.066666-81.066666l12.8-42.666667c4.266667-12.8 17.066667-25.6 29.866667-25.6 12.8 0 25.6 8.533333 29.866667 25.6l12.8 42.666667c8.533333 38.4 42.666667 72.533333 81.066666 81.066666l42.666667 12.8c12.8 4.266667 25.6 17.066667 25.6 29.866667 0 12.8-8.533333 25.6-25.6 29.866667l-42.666667 12.8c-38.4 8.533333-72.533333 42.666667-81.066666 81.066666l-12.8 42.666667c-4.266667 17.066667-17.066667 25.6-29.866667 25.6z m-64 512c-12.8 0-25.6-8.533333-29.866667-21.333333l-17.066666-51.2c-4.266667-17.066667-21.333333-34.133333-38.4-38.4l-51.2-17.066667c-12.8-4.266667-21.333333-17.066667-21.333334-29.866667 0-12.8 8.533333-25.6 21.333334-29.866666l51.2-17.066667c17.066667-4.266667 34.133333-21.333333 38.4-38.4l17.066666-51.2c4.266667-12.8 17.066667-21.333333 29.866667-21.333333 12.8 0 25.6 8.533333 29.866667 21.333333l17.066666 51.2c4.266667 17.066667 21.333333 34.133333 38.4 38.4l51.2 17.066667c12.8 4.266667 21.333333 17.066667 21.333334 29.866666 0 12.8-8.533333 25.6-21.333334 29.866667l-51.2 17.066667c-17.066667 4.266667-34.133333 21.333333-38.4 38.4l-17.066666 51.2c-4.266667 12.8-17.066667 21.333333-29.866667 21.333333z', + fill: 'currentColor', + }), + ], + ), + ]) + }, + }, } diff --git a/ui/src/components/common-list/index.vue b/ui/src/components/common-list/index.vue index 99496a087..124d81f84 100644 --- a/ui/src/components/common-list/index.vue +++ b/ui/src/components/common-list/index.vue @@ -79,7 +79,7 @@ defineExpose({ line-height: 24px; &.active { background: var(--el-color-primary-light-9); - border-radius: var(--app-border-radius-base); + border-radius: var(); color: var(--el-color-primary); font-weight: 500; &:hover { @@ -87,7 +87,7 @@ defineExpose({ } } &:hover { - border-radius: var(--app-border-radius-base); + border-radius: var(); background: var(--app-text-color-light-1); } &.is-active { diff --git a/ui/src/components/folder-tree/index.vue b/ui/src/components/folder-tree/index.vue index 73a2d26bc..1c1921b91 100644 --- a/ui/src/components/folder-tree/index.vue +++ b/ui/src/components/folder-tree/index.vue @@ -277,7 +277,7 @@ onUnmounted(() => { margin-bottom: 4px; &.active { background: var(--el-color-primary-light-9); - border-radius: var(--app-border-radius-base); + border-radius: var(); color: var(--el-color-primary); font-weight: 500; &:hover { @@ -285,7 +285,7 @@ onUnmounted(() => { } } &:hover { - border-radius: var(--app-border-radius-base); + border-radius: var(); background: var(--app-text-color-light-1); } &.is-active { diff --git a/ui/src/locales/lang/en-US/views/application.ts b/ui/src/locales/lang/en-US/views/application.ts index f3687e9ec..d910e47c0 100644 --- a/ui/src/locales/lang/en-US/views/application.ts +++ b/ui/src/locales/lang/en-US/views/application.ts @@ -131,7 +131,11 @@ export default { }, mcp_output_enable: 'Output MCP/Tool Execution Process', }, - buttons: {}, + generateDialog: { + label: 'Generate', + generatePrompt: 'Generate Prompt', + placeholder: 'Please enter the prompt topic', + }, dialog: { addKnowledge: 'Add Related Knowledge', addKnowledgePlaceholder: 'The selected knowledge must use the same embedding model', diff --git a/ui/src/locales/lang/zh-CN/views/application.ts b/ui/src/locales/lang/zh-CN/views/application.ts index 6f80f8f30..f61686ff4 100644 --- a/ui/src/locales/lang/zh-CN/views/application.ts +++ b/ui/src/locales/lang/zh-CN/views/application.ts @@ -65,6 +65,7 @@ export default { label: '系统角色', placeholder: '你是 xxx 小助手', }, + prompt: { label: '提示词', noReferences: ' (无引用知识库)', @@ -120,9 +121,13 @@ export default { start: '开始', end: '结束', }, - mcp_output_enable: '输出MCP/工具执行过程' + mcp_output_enable: '输出MCP/工具执行过程', + }, + generateDialog: { + label: '生成', + generatePrompt: '生成提示词', + placeholder: '请输入提示词主题', }, - dialog: { addKnowledge: '添加关联知识库', addKnowledgePlaceholder: '所选知识库必须使用相同的 Embedding 模型', diff --git a/ui/src/locales/lang/zh-Hant/views/application.ts b/ui/src/locales/lang/zh-Hant/views/application.ts index d9eea0d17..2cf5a8751 100644 --- a/ui/src/locales/lang/zh-Hant/views/application.ts +++ b/ui/src/locales/lang/zh-Hant/views/application.ts @@ -122,7 +122,11 @@ export default { }, mcp_output_enable: '輸出MCP/工具執行過程', }, - + generateDialog: { + label: '生成', + generatePrompt: '生成提示詞', + placeholder: '請輸入提示詞主題', + }, dialog: { addKnowledge: '新增關聯知識庫', addKnowledgePlaceholder: '所選知識庫必須使用相同的 Embedding 模型', diff --git a/ui/src/styles/app.scss b/ui/src/styles/app.scss index b3ac33bf5..8a50824a2 100644 --- a/ui/src/styles/app.scss +++ b/ui/src/styles/app.scss @@ -315,14 +315,12 @@ h5 { .border-b-light { border-bottom: 1px solid var(--el-border-color-lighter); } -.border-r-4 { - border-radius: var(--app-border-radius-small); -} + .border-r-6 { - border-radius: var(--app-border-radius-base); + border-radius: var(); } .border-r-8 { - border-radius: var(--app-border-radius-large); + border-radius: var(--app-border-radius-base); } .border-t-dashed { diff --git a/ui/src/styles/component.scss b/ui/src/styles/component.scss index c046a8ae7..928e33705 100644 --- a/ui/src/styles/component.scss +++ b/ui/src/styles/component.scss @@ -111,6 +111,9 @@ } .el-dialog__header { padding: 16px 24px; + .el-dialog__headerbtn { + top: 8px; + } } .el-dialog__body { border-top: 1px solid var(--el-border-color); diff --git a/ui/src/styles/element-plus.scss b/ui/src/styles/element-plus.scss index f5df414ee..024cbb968 100644 --- a/ui/src/styles/element-plus.scss +++ b/ui/src/styles/element-plus.scss @@ -209,12 +209,13 @@ .el-dialog { --el-dialog-padding-primary: 24px; --el-dialog-border-radius: 8px; + --el-dialog-title-font-size: 16px; .el-dialog__body { color: var(--el-text-color-primary); } } .el-dialog__headerbtn { - top: 8px; + top: 12px; right: 8px; .el-dialog__close { font-size: 20px; diff --git a/ui/src/styles/variables.scss b/ui/src/styles/variables.scss index b254fc51d..9d65a3f3d 100644 --- a/ui/src/styles/variables.scss +++ b/ui/src/styles/variables.scss @@ -8,9 +8,9 @@ --app-view-padding: 24px; --app-view-bg-color: #ffffff; --app-border-color-dark: #bbbfc4; - --app-border-radius-small: 4px; - --app-border-radius-base: 6px; - --app-border-radius-large: 8px; + --app-border-radius-small: 6px; + --app-border-radius-base: 8px; + --app-border-radius-large: 16px; --md-bk-hover-color: var(--el-border-color-hover); /** header 组件 */ --app-header-height: 56px; diff --git a/ui/src/views/application/ApplicationSetting.vue b/ui/src/views/application/ApplicationSetting.vue index f8f350510..864223c06 100644 --- a/ui/src/views/application/ApplicationSetting.vue +++ b/ui/src/views/application/ApplicationSetting.vue @@ -104,12 +104,13 @@
{{ $t('views.application.form.roleSettings.label') }} - 生成 + + {{ $t('views.application.generateDialog.label') }}
@@ -308,12 +309,15 @@
0) || + (applicationForm.mcp_servers && applicationForm.mcp_servers.length > 0) " > -
+
- +