diff --git a/ui/src/api/application/application.ts b/ui/src/api/application/application.ts index 709fe0335..07ef53689 100644 --- a/ui/src/api/application/application.ts +++ b/ui/src/api/application/application.ts @@ -206,16 +206,21 @@ const open: (application_id: string, loading?: Ref) => Promise Promise = ( +const generate_prompt: (workspace_id:string ,model_id:string, application_id:string,data: any) => Promise = ( workspace_id, model_id, + application_id, data ) => { const prefix = (window.MaxKB?.prefix ? window.MaxKB?.prefix : '/admin') + '/api' - return postStream(`${prefix}/workspace/${workspace_id}/application/model/${model_id}/prompt_generate`, data) + return postStream(`${prefix}/workspace/${workspace_id}/application/${application_id}/model/${model_id}/prompt_generate`, data) } diff --git a/ui/src/views/application/ApplicationSetting.vue b/ui/src/views/application/ApplicationSetting.vue index 864223c06..4fca28ee3 100644 --- a/ui/src/views/application/ApplicationSetting.vue +++ b/ui/src/views/application/ApplicationSetting.vue @@ -784,7 +784,7 @@ const openAIParamSettingDialog = () => { const openGeneratePromptDialog = () => { if (applicationForm.value.model_id) { - GeneratePromptDialogRef.value?.open(applicationForm.value.model_id) + GeneratePromptDialogRef.value?.open(applicationForm.value.model_id, id) } } diff --git a/ui/src/views/application/component/GeneratePromptDialog.vue b/ui/src/views/application/component/GeneratePromptDialog.vue index e7efa2c85..00ea01587 100644 --- a/ui/src/views/application/component/GeneratePromptDialog.vue +++ b/ui/src/views/application/component/GeneratePromptDialog.vue @@ -85,6 +85,7 @@ const chatMessages = ref>([]) // 原始输入 const originalUserInput = ref('') const modelID = ref('') +const applicationID = ref('') const dialogVisible = ref(false) const inputValue = ref('') const loading = ref(false) @@ -97,8 +98,8 @@ const promptTemplates = { 请按以下格式生成: -# 角色: 角色名称 -角色概述和主要职责的一句话描述 +# 角色: + ## 目标: 角色的工作目标,如果有多目标可以分点列出,但建议更聚焦1-2个目标 @@ -118,9 +119,12 @@ const promptTemplates = { ## 限制: -描述角色在互动过程中需要遵循的限制条件1 -描述角色在互动过程中需要遵循的限制条件2 -描述角色在互动过程中需要遵循的限制条件3 +1. **严格限制回答范围**:仅回答与角色设定相关的问题。 + - 如果用户提问与角色无关,必须使用以下固定格式回复: + “对不起,我只能回答与【角色设定】相关的问题,您的问题不在服务范围内。” + - 不得提供任何与角色设定无关的回答。 +2. 描述角色在互动过程中需要遵循的限制条件2 +3. 描述角色在互动过程中需要遵循的限制条件3 `, } @@ -200,7 +204,7 @@ function generatePrompt(inputValue: any) { messages: chatMessages.value, prompt: promptTemplates.INIT_TEMPLATE, } - generatePromptAPI.generate_prompt(workspaceId, modelID.value, requestData).then((response) => { + generatePromptAPI.generate_prompt(workspaceId, modelID.value, applicationID.value,requestData).then((response) => { const reader = response.body.getReader() reader.read().then(getWrite(reader)) }) @@ -226,8 +230,9 @@ const stopChat = () => { chatMessages.value = [] } -const open = (modelId: string) => { +const open = (modelId: string, applicationId: string) => { modelID.value = modelId + applicationID.value = applicationId dialogVisible.value = true originalUserInput.value = '' chatMessages.value = [] diff --git a/ui/src/workflow/nodes/ai-chat-node/index.vue b/ui/src/workflow/nodes/ai-chat-node/index.vue index 6fc2cc575..1b2b7d8b5 100644 --- a/ui/src/workflow/nodes/ai-chat-node/index.vue +++ b/ui/src/workflow/nodes/ai-chat-node/index.vue @@ -439,7 +439,7 @@ const openAIParamSettingDialog = (modelId: string) => { const GeneratePromptDialogRef = ref>() const openGeneratePromptDialog = (modelId: string) => { if (modelId) { - GeneratePromptDialogRef.value?.open(modelId) + GeneratePromptDialogRef.value?.open(modelId, id) } } const replace = (v: any) => { diff --git a/ui/src/workflow/nodes/intent-classify-node/index.ts b/ui/src/workflow/nodes/intent-classify-node/index.ts index cde9aaea1..426e90856 100644 --- a/ui/src/workflow/nodes/intent-classify-node/index.ts +++ b/ui/src/workflow/nodes/intent-classify-node/index.ts @@ -6,8 +6,8 @@ class IntentNode extends AppNode { } } -const get_up_index_height = (branch_lsit: Array, index: number) => { - return branch_lsit +const get_up_index_height = (branch_list: Array, index: number) => { + return branch_list .filter((item, i) => i < index) .map((item) => item.height + 8) .reduce((x,y) => x+y, 0)