@@ -670,9 +697,5 @@ defineExpose({ open })
}
}
-@media only screen and (max-width: 768px) {
- .execution-details-dialog {
- width: 90% !important;
- }
-}
+
diff --git a/ui/src/components/ai-chat/ParagraphSourceDialog.vue b/ui/src/components/ai-chat/ParagraphSourceDialog.vue
index f680c709dee..32195a5c4b0 100644
--- a/ui/src/components/ai-chat/ParagraphSourceDialog.vue
+++ b/ui/src/components/ai-chat/ParagraphSourceDialog.vue
@@ -1,6 +1,6 @@
diff --git a/ui/src/components/ai-chat/component/operation-button/ChatOperationButton.vue b/ui/src/components/ai-chat/component/operation-button/ChatOperationButton.vue
index fe2d91a4943..e633c850a53 100644
--- a/ui/src/components/ai-chat/component/operation-button/ChatOperationButton.vue
+++ b/ui/src/components/ai-chat/component/operation-button/ChatOperationButton.vue
@@ -200,7 +200,7 @@ const playAnswerTextPart = () => {
if (audioList.value[currentAudioIndex.value] !== utterance.value?.text) {
window.speechSynthesis.cancel()
}
- if (window.speechSynthesis.paused) {
+ if (window.speechSynthesis.paused && audioList.value[currentAudioIndex.value] === utterance.value?.text) {
window.speechSynthesis.resume()
return
}
diff --git a/ui/src/components/ai-chat/component/operation-button/LogOperationButton.vue b/ui/src/components/ai-chat/component/operation-button/LogOperationButton.vue
index 03772952b2d..71120c97484 100644
--- a/ui/src/components/ai-chat/component/operation-button/LogOperationButton.vue
+++ b/ui/src/components/ai-chat/component/operation-button/LogOperationButton.vue
@@ -176,7 +176,7 @@ const playAnswerTextPart = () => {
if (audioList.value[currentAudioIndex.value] !== utterance.value?.text) {
window.speechSynthesis.cancel()
}
- if (window.speechSynthesis.paused) {
+ if (window.speechSynthesis.paused && audioList.value[currentAudioIndex.value] === utterance.value?.text) {
window.speechSynthesis.resume()
return
}
diff --git a/ui/src/enums/workflow.ts b/ui/src/enums/workflow.ts
index ca683bd56de..bcd83a05929 100644
--- a/ui/src/enums/workflow.ts
+++ b/ui/src/enums/workflow.ts
@@ -12,8 +12,9 @@ export enum WorkflowType {
Application = 'application-node',
DocumentExtractNode = 'document-extract-node',
ImageUnderstandNode = 'image-understand-node',
+ VariableAssignNode = 'variable-assign-node',
FormNode = 'form-node',
TextToSpeechNode = 'text-to-speech-node',
SpeechToTextNode = 'speech-to-text-node',
- ImageGenerateNode = 'image-generate-node'
+ ImageGenerateNode = 'image-generate-node'
}
diff --git a/ui/src/locales/lang/en-US/ai-chat.ts b/ui/src/locales/lang/en-US/ai-chat.ts
index d5629716ec3..ac6cc886d3a 100644
--- a/ui/src/locales/lang/en-US/ai-chat.ts
+++ b/ui/src/locales/lang/en-US/ai-chat.ts
@@ -90,5 +90,6 @@ export default {
title: 'Knowledge Quote',
question: 'User Question',
optimizationQuestion: 'Optimized Question'
- }
+ },
+ editTitle: 'Edit Title',
}
diff --git a/ui/src/locales/lang/en-US/views/application-workflow.ts b/ui/src/locales/lang/en-US/views/application-workflow.ts
index c1275462a6e..3ac6c265c83 100644
--- a/ui/src/locales/lang/en-US/views/application-workflow.ts
+++ b/ui/src/locales/lang/en-US/views/application-workflow.ts
@@ -20,6 +20,8 @@ export default {
latestRelease: 'Latest Release',
copyParam: 'Copy Parameters',
debug: 'Run',
+ exit: 'Exit',
+ exitSave: 'Save & Exit',
},
tip: {
publicSuccess: 'Published successfully',
@@ -33,7 +35,8 @@ export default {
repeatedNodeError: 'A node with this name already exists',
cannotCopy: 'Cannot be copied',
copyError: 'Node already copied',
- paramErrorMessage: 'Parameter already exists: '
+ paramErrorMessage: 'Parameter already exists: ',
+ saveMessage: 'Current changes have not been saved. Save before exiting?',
},
delete: {
confirmTitle: 'Confirm to delete this node?',
@@ -48,12 +51,13 @@ export default {
beautify: 'Auto-Arrange'
},
variable: {
+ label: 'Variable',
global: 'Global Variable',
Referencing: 'Referenced Variable',
ReferencingRequired: 'Referenced variable is required',
ReferencingError: 'Invalid referenced variable',
NoReferencing: 'Referenced variable does not exist',
- fieldMessage: 'Please select a variable'
+ placeholder: 'Please select a variable'
},
condition: {
title: 'Execution Condition',
@@ -82,12 +86,11 @@ export default {
baseNode: {
label: 'Base Information',
appName: {
- label: 'App Name',
-
+ label: 'App Name'
},
appDescription: {
- label: 'App Description',
- },
+ label: 'App Description'
+ },
fileUpload: {
label: 'File Upload',
tooltip: 'When enabled, the Q&A page will display a file upload button.'
@@ -114,7 +117,7 @@ export default {
If you want the user to see the output of this node, please turn on the switch.`
},
defaultPrompt: 'Known Information',
- think: 'Thinking Process',
+ think: 'Thinking Process'
},
searchDatasetNode: {
label: 'Knowledge Retrieval',
@@ -188,8 +191,7 @@ export default {
label: 'Form Output Content',
requiredMessage:
'Please set the output content of this node, { form } is a placeholder for the form.',
- tooltip:
- 'Define the output content of this node. { form } is a placeholder for the form'
+ tooltip: 'Define the output content of this node. { form } is a placeholder for the form'
},
formAllContent: 'All Form Content',
formSetting: 'Form Configuration'
@@ -212,6 +214,11 @@ export default {
requiredMessage: 'Please select an image'
}
},
+ variableAssignNode: {
+ label: 'Variable Assign',
+ text: 'Update the value of the global variable',
+ assign: 'Set Value'
+ },
imageGenerateNode: {
label: 'Image Generation',
text: 'Generate images based on provided text content',
@@ -222,13 +229,11 @@ export default {
},
prompt: {
label: 'Positive Prompt',
- tooltip:
- 'Describe elements and visual features you want in the generated image'
+ tooltip: 'Describe elements and visual features you want in the generated image'
},
negative_prompt: {
label: 'Negative Prompt',
- tooltip:
- 'Describe elements you want to exclude from the generated image',
+ tooltip: 'Describe elements you want to exclude from the generated image',
placeholder:
'Please describe content you do not want to generate, such as color, bloody content'
}
diff --git a/ui/src/locales/lang/en-US/views/application.ts b/ui/src/locales/lang/en-US/views/application.ts
index 82ed3fef316..10f5d9495a2 100644
--- a/ui/src/locales/lang/en-US/views/application.ts
+++ b/ui/src/locales/lang/en-US/views/application.ts
@@ -46,6 +46,10 @@ export default {
simplePlaceholder: 'Suitable for beginners to create assistant.',
workflowPlaceholder: 'Suitable for advanced users to customize the workflow of assistant'
},
+ appTemplate: {
+ blankApp: 'Blank APP',
+ assistantApp: 'Knowledge Assistant'
+ },
aiModel: {
label: 'AI Model',
placeholder: 'Please select an AI model'
@@ -110,7 +114,7 @@ export default {
reasoningContent: {
label: 'Output Thinking',
tooltip:
- 'Please set the thinking label based on the model\'s return, and the content in the middle of the label will be recognized as the thinking process.',
+ "Please set the thinking label based on the model's return, and the content in the middle of the label will be recognized as the thinking process.",
start: 'Start',
end: 'End'
}
@@ -211,7 +215,7 @@ export default {
slackSetting: {
title: 'Slack Configuration',
signingSecretPlaceholder: 'Please enter signing secret',
- botUserTokenPlaceholder: 'Please enter bot user token',
+ botUserTokenPlaceholder: 'Please enter bot user token'
},
copyUrl: 'Copy the link and fill it in'
},
diff --git a/ui/src/locales/lang/en-US/views/dataset.ts b/ui/src/locales/lang/en-US/views/dataset.ts
index f11a9dbc490..7764c7c5427 100644
--- a/ui/src/locales/lang/en-US/views/dataset.ts
+++ b/ui/src/locales/lang/en-US/views/dataset.ts
@@ -27,7 +27,7 @@ export default {
},
datasetForm: {
title: {
- info: 'Knowledge settings'
+ info: 'Knowledge Settings'
},
form: {
datasetName: {
diff --git a/ui/src/locales/lang/en-US/views/system.ts b/ui/src/locales/lang/en-US/views/system.ts
index bc4a9075f35..303d1175dcf 100644
--- a/ui/src/locales/lang/en-US/views/system.ts
+++ b/ui/src/locales/lang/en-US/views/system.ts
@@ -101,7 +101,7 @@ export default {
custom: 'Custom',
pagePreview: 'Page Preview',
default: 'Default',
- restoreDefaults: 'Reset to default',
+ restoreDefaults: 'Restore Defaults',
orange: 'Orange',
green: 'Green',
purple: 'Purple',
@@ -119,12 +119,12 @@ export default {
websiteName: 'Website Name',
websiteNamePlaceholder: 'Please enter the website name',
websiteNameTip: 'The platform name displayed in the web page tab',
- websiteSlogan: 'Welcome Message',
- websiteSloganPlaceholder: 'Please enter the welcome message',
- websiteSloganTip: 'The welcome message below the product logo',
+ websiteSlogan: 'Welcome Slogan',
+ websiteSloganPlaceholder: 'Please enter the welcome slogan',
+ websiteSloganTip: 'The welcome slogan below the product logo',
defaultSlogan: 'Ready-to-use, flexible RAG Chatbot',
- defaultTip: 'Default is the MaxKB platform interface, supports custom settings',
- logoDefaultTip: 'Default is the MaxKB login interface, supports custom settings',
+ defaultTip: 'The default is the MaxKB platform interface, supports custom settings',
+ logoDefaultTip: 'The default is the MaxKB login interface, supports custom settings',
platformSetting: 'Platform Settings',
showUserManual: 'Show User Manual',
showForum: 'Show Forum Support',
@@ -136,15 +136,15 @@ export default {
saveSuccess: 'Appearance settings successfully applied'
},
email: {
- title: 'Mail Settings',
+ title: 'Email Settings',
smtpHost: 'SMTP Host',
smtpHostPlaceholder: 'Please enter SMTP host',
smtpPort: 'SMTP Port',
smtpPortPlaceholder: 'Please enter SMTP port',
smtpUser: 'SMTP User',
smtpUserPlaceholder: 'Please enter SMTP user',
- sendEmail: 'Send Email',
- sendEmailPlaceholder: 'Please enter send email',
+ sendEmail: 'Sender\'s Email',
+ sendEmailPlaceholder: 'Please enter the sender\'s email',
smtpPassword: 'SMTP Password',
smtpPasswordPlaceholder: 'Please enter SMTP password',
enableSSL: 'Enable SSL (if the SMTP port is 465, you usually need to enable SSL)',
diff --git a/ui/src/locales/lang/zh-CN/ai-chat.ts b/ui/src/locales/lang/zh-CN/ai-chat.ts
index a4b54ad03df..fdc4a55f757 100644
--- a/ui/src/locales/lang/zh-CN/ai-chat.ts
+++ b/ui/src/locales/lang/zh-CN/ai-chat.ts
@@ -25,7 +25,6 @@ export default {
continue: '继续',
stopChat: '停止回答'
},
-
tip: {
error500Message: '抱歉,当前正在维护,无法提供服务,请稍后再试!',
errorIdentifyMessage: '无法识别用户身份',
@@ -91,5 +90,6 @@ export default {
title: '知识库引用',
question: '用户问题',
optimizationQuestion: '优化后问题'
- }
+ },
+ editTitle: '编辑标题',
}
diff --git a/ui/src/locales/lang/zh-CN/views/application-workflow.ts b/ui/src/locales/lang/zh-CN/views/application-workflow.ts
index 2ccaf16a1dc..95d73605fd7 100644
--- a/ui/src/locales/lang/zh-CN/views/application-workflow.ts
+++ b/ui/src/locales/lang/zh-CN/views/application-workflow.ts
@@ -20,6 +20,8 @@ export default {
latestRelease: '最近发布',
copyParam: '复制参数',
debug: '调试',
+ exit: '直接退出',
+ exitSave: '保存并退出',
},
tip: {
publicSuccess: '发布成功',
@@ -33,7 +35,8 @@ export default {
repeatedNodeError: '节点名称已存在!',
cannotCopy: '不能被复制',
copyError: '已复制节点',
- paramErrorMessage: '参数已存在: '
+ paramErrorMessage: '参数已存在: ',
+ saveMessage: '当前的更改尚未保存,是否保存后退出?',
},
delete: {
confirmTitle: '确定删除该节点?',
@@ -48,12 +51,13 @@ export default {
beautify: '一键美化'
},
variable: {
+ label: '变量',
global: '全局变量',
Referencing: '引用变量',
ReferencingRequired: '引用变量必填',
ReferencingError: '引用变量错误',
NoReferencing: '不存在的引用变量',
- fieldMessage: '请选择变量'
+ placeholder: '请选择变量'
},
condition: {
title: '执行条件',
@@ -83,12 +87,11 @@ export default {
baseNode: {
label: '基本信息',
appName: {
- label: '应用名称',
-
+ label: '应用名称'
},
appDescription: {
- label: '应用描述',
- },
+ label: '应用描述'
+ },
fileUpload: {
label: '文件上传',
tooltip: '开启后,问答页面会显示上传文件的按钮。'
@@ -115,7 +118,7 @@ export default {
如果你想让用户看到该节点的输出内容,请打开开关。`
},
defaultPrompt: '已知信息',
- think: '思考过程',
+ think: '思考过程'
},
searchDatasetNode: {
label: '知识库检索',
@@ -211,6 +214,11 @@ export default {
requiredMessage: '请选择图片'
}
},
+ variableAssignNode: {
+ label: '变量赋值',
+ text: '更新全局变量的值',
+ assign: '赋值'
+ },
imageGenerateNode: {
label: '图片生成',
text: '根据提供的文本内容生成图片',
diff --git a/ui/src/locales/lang/zh-CN/views/application.ts b/ui/src/locales/lang/zh-CN/views/application.ts
index 0f6733e13c0..f794936f581 100644
--- a/ui/src/locales/lang/zh-CN/views/application.ts
+++ b/ui/src/locales/lang/zh-CN/views/application.ts
@@ -41,6 +41,10 @@ export default {
simplePlaceholder: '适合新手创建小助手',
workflowPlaceholder: '适合高级用户自定义小助手的工作流'
},
+ appTemplate: {
+ blankApp: '空白应用',
+ assistantApp: '知识库问答助手'
+ },
aiModel: {
label: 'AI 模型',
placeholder: '请选择 AI 模型'
@@ -198,7 +202,7 @@ export default {
slackSetting: {
title: 'Slack 应用配置',
signingSecretPlaceholder: '请输入 Signing Secret',
- botUserTokenPlaceholder: '请输入 Bot User Token',
+ botUserTokenPlaceholder: '请输入 Bot User Token'
},
copyUrl: '复制链接填入到'
},
diff --git a/ui/src/locales/lang/zh-Hant/ai-chat.ts b/ui/src/locales/lang/zh-Hant/ai-chat.ts
index a0aa1c27bed..2972bfe4f3c 100644
--- a/ui/src/locales/lang/zh-Hant/ai-chat.ts
+++ b/ui/src/locales/lang/zh-Hant/ai-chat.ts
@@ -90,5 +90,6 @@ export default {
title: '知識庫引用',
question: '用戶問題',
optimizationQuestion: '優化後問題'
- }
+ },
+ editTitle: '編輯標題',
}
diff --git a/ui/src/locales/lang/zh-Hant/views/application-workflow.ts b/ui/src/locales/lang/zh-Hant/views/application-workflow.ts
index c7fa83e5a15..e3491eb77f7 100644
--- a/ui/src/locales/lang/zh-Hant/views/application-workflow.ts
+++ b/ui/src/locales/lang/zh-Hant/views/application-workflow.ts
@@ -19,7 +19,9 @@ export default {
autoSave: '自動保存',
latestRelease: '最近發布',
copyParam: '複製參數',
- debug: '調試'
+ debug: '調試',
+ exit: '直接退出',
+ exitSave: '保存並退出',
},
tip: {
publicSuccess: '發布成功',
@@ -33,7 +35,8 @@ export default {
repeatedNodeError: '節點名稱已存在!',
cannotCopy: '不能被複製',
copyError: '已複製節點',
- paramErrorMessage: '參數已存在: '
+ paramErrorMessage: '參數已存在: ',
+ saveMessage: '當前修改未保存,是否保存後退出?',
},
delete: {
confirmTitle: '確定刪除該節點?',
@@ -48,12 +51,13 @@ export default {
beautify: '一鍵美化'
},
variable: {
+ label: '變量',
global: '全局變量',
Referencing: '引用變量',
ReferencingRequired: '引用變量必填',
ReferencingError: '引用變量錯誤',
NoReferencing: '不存在的引用變量',
- fieldMessage: '請選擇變量'
+ placeholder: '請選擇變量'
},
condition: {
title: '執行條件',
@@ -114,7 +118,7 @@ export default {
如果你想讓用戶看到該節點的輸出內容,請打開開關。`
},
defaultPrompt: '已知信息',
- think: '思考過程',
+ think: '思考過程'
},
searchDatasetNode: {
label: '知識庫檢索',
@@ -210,6 +214,11 @@ export default {
requiredMessage: '請選擇圖片'
}
},
+ variableAssignNode: {
+ label: '變數賦值',
+ text: '更新全域變數的值',
+ assign: '賦值'
+ },
imageGenerateNode: {
label: '圖片生成',
text: '根據提供的文本內容生成圖片',
diff --git a/ui/src/locales/lang/zh-Hant/views/application.ts b/ui/src/locales/lang/zh-Hant/views/application.ts
index be2c236bac9..47af0334afe 100644
--- a/ui/src/locales/lang/zh-Hant/views/application.ts
+++ b/ui/src/locales/lang/zh-Hant/views/application.ts
@@ -41,6 +41,10 @@ export default {
simplePlaceholder: '適合新手建立小助手',
workflowPlaceholder: '適合高階用戶自訂小助手的工作流程'
},
+ appTemplate: {
+ blankApp: '空白應用',
+ assistantApp: '知識庫問答助手'
+ },
aiModel: {
label: 'AI 模型',
placeholder: '請選擇 AI 模型'
diff --git a/ui/src/stores/modules/log.ts b/ui/src/stores/modules/log.ts
index d7a8d64988e..d487c1baf70 100644
--- a/ui/src/stores/modules/log.ts
+++ b/ui/src/stores/modules/log.ts
@@ -60,6 +60,18 @@ const useLogStore = defineStore({
reject(error)
})
})
+ },
+ async asyncPutChatClientLog(id: string, chatId: string, data: any, loading?: Ref) {
+ return new Promise((resolve, reject) => {
+ logApi
+ .putChatClientLog(id, chatId, data, loading)
+ .then((data) => {
+ resolve(data)
+ })
+ .catch((error) => {
+ reject(error)
+ })
+ })
}
}
})
diff --git a/ui/src/styles/app.scss b/ui/src/styles/app.scss
index 90bab9c1124..232991dc402 100644
--- a/ui/src/styles/app.scss
+++ b/ui/src/styles/app.scss
@@ -756,3 +756,9 @@ h5 {
border-right: 1px solid var(--el-border-color);
}
}
+
+@media only screen and (max-width: 768px) {
+ .responsive-dialog {
+ width: 90% !important;
+ }
+}
\ No newline at end of file
diff --git a/ui/src/views/application-workflow/index.vue b/ui/src/views/application-workflow/index.vue
index f359b028b24..0a266885bd2 100644
--- a/ui/src/views/application-workflow/index.vue
+++ b/ui/src/views/application-workflow/index.vue
@@ -2,9 +2,7 @@