Skip to content

Commit 696251a

Browse files
committed
fix: Generate prompt output
1 parent 684b86f commit 696251a

File tree

1 file changed

+36
-6
lines changed

1 file changed

+36
-6
lines changed

ui/src/views/application/component/GeneratePromptDialog.vue

Lines changed: 36 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -133,17 +133,34 @@ const promptTemplates = {
133133
必须严格遵循以下规则:
134134
1. **严格禁止输出解释、前言、额外说明**,只输出最终结果。
135135
2. **严格使用以下格式**,不能缺少标题、不能多出其他段落。
136+
3. **如果用户需求不明确,就忽略用户需求**。
136137
137138
# 角色:
138-
139+
角色概述和主要职责的一句话描述
139140
140141
## 目标:
141142
角色的工作目标,如果有多目标可以分点列出,但建议更聚焦1-2个目标
142143
143-
## 技能:
144-
1. 为了实现目标,角色需要具备的技能1
145-
2. 为了实现目标,角色需要具备的技能2
146-
3. 为了实现目标,角色需要具备的技能3
144+
## 核心技能:
145+
### 技能 1: [技能名称,如作品推荐/信息查询/专业分析等]
146+
1. [执行步骤1 - 描述该技能的第一个具体操作步骤,包括条件判断和处理方式]
147+
2. [执行步骤2 - 描述该技能的第二个具体操作步骤,包括如何获取或处理信息]
148+
3. [执行步骤3 - 描述该技能的最终输出步骤,说明如何呈现结果]
149+
150+
===回复示例===
151+
- 📋 [标识符]: <具体内容格式说明>
152+
- 🎯 [标识符]: <具体内容格式说明>
153+
- 💡 [标识符]: <具体内容格式说明>
154+
===示例结束===
155+
156+
### 技能 2: [技能名称]
157+
1. [执行步骤1 - 描述触发条件和初始处理方式]
158+
2. [执行步骤2 - 描述信息获取和深化处理的具体方法]
159+
3. [执行步骤3 - 描述最终输出的具体要求和格式]
160+
161+
### 技能 3: [技能名称]
162+
- [核心能力描述 - 说明该技能的主要作用和知识基础]
163+
- [应用方法 - 描述如何运用该技能为用户提供服务,包括具体的实施方式]
147164
148165
## 工作流:
149166
1. 描述角色工作流程的第一步
@@ -183,6 +200,15 @@ const startStreamingOutput = () => {
183200
isPaused.value = false
184201
185202
streamTimer = setInterval(() => {
203+
if (isApiComplete.value && !isPaused.value) {
204+
// 更新显示内容
205+
const currentAnswer = chatMessages.value[chatMessages.value.length - 1]
206+
if (currentAnswer && currentAnswer.role === 'ai') {
207+
currentAnswer.content = fullContent .value
208+
}
209+
stopStreaming()
210+
return
211+
}
186212
if (!isPaused.value && currentDisplayIndex.value < fullContent.value.length) {
187213
// 每次输出1-3个字符,模拟真实的流式输出
188214
const step = Math.min(3, fullContent.value.length - currentDisplayIndex.value)
@@ -256,6 +282,7 @@ const getWrite = (reader: any) => {
256282
if (done) {
257283
// 流数据接收完成,但定时器继续运行直到显示完所有内容
258284
loading.value = false
285+
isApiComplete.value = true
259286
return
260287
}
261288
const decoder = new TextDecoder('utf-8')
@@ -283,7 +310,6 @@ const getWrite = (reader: any) => {
283310
}
284311
}
285312
if (chunk.is_end) {
286-
isApiComplete.value = true
287313
return Promise.resolve()
288314
}
289315
}
@@ -317,6 +343,7 @@ const showContinueButton = computed(() => {
317343
})
318344
319345
function generatePrompt(inputValue: any) {
346+
isApiComplete.value=false
320347
loading.value = true
321348
const workspaceId = user.getWorkspaceId() || 'default'
322349
chatMessages.value.push({ content: inputValue, role: 'user' })
@@ -369,6 +396,9 @@ const handleSubmit = (event?: any) => {
369396
if (!originalUserInput.value) {
370397
originalUserInput.value = inputValue.value
371398
}
399+
if (isPaused.value || isStreaming.value) {
400+
return
401+
}
372402
if (inputValue.value) {
373403
generatePrompt(inputValue.value)
374404
inputValue.value = ''

0 commit comments

Comments
 (0)