fix: Generate prompt output

v3.2
zhangzhanwei 2025-09-28 09:39:55 +08:00 committed by zhanweizhang7
parent 684b86f197
commit 79457ee41f
1 changed files with 36 additions and 6 deletions

View File

@ -133,17 +133,34 @@ const promptTemplates = {
必须严格遵循以下规则 必须严格遵循以下规则
1. **严格禁止输出解释前言额外说明**只输出最终结果 1. **严格禁止输出解释前言额外说明**只输出最终结果
2. **严格使用以下格式**不能缺少标题不能多出其他段落 2. **严格使用以下格式**不能缺少标题不能多出其他段落
3. **如果用户需求不明确就忽略用户需求**
# 角色: # 角色:
角色概述和主要职责的一句话描述
## 目标 ## 目标
角色的工作目标,如果有多目标可以分点列出,但建议更聚焦1-2个目标 角色的工作目标,如果有多目标可以分点列出,但建议更聚焦1-2个目标
## 技能 ## 核心技能
1. 为了实现目标,角色需要具备的技能1 ### 技能 1: [技能名称如作品推荐/信息查询/专业分析等]
2. 为了实现目标,角色需要具备的技能2 1. [执行步骤1 - 描述该技能的第一个具体操作步骤包括条件判断和处理方式]
3. 为了实现目标,角色需要具备的技能3 2. [执行步骤2 - 描述该技能的第二个具体操作步骤包括如何获取或处理信息]
3. [执行步骤3 - 描述该技能的最终输出步骤说明如何呈现结果]
===回复示例===
- 📋 [标识符]: <具体内容格式说明>
- 🎯 [标识符]: <具体内容格式说明>
- 💡 [标识符]: <具体内容格式说明>
===示例结束===
### 技能 2: [技能名称]
1. [执行步骤1 - 描述触发条件和初始处理方式]
2. [执行步骤2 - 描述信息获取和深化处理的具体方法]
3. [执行步骤3 - 描述最终输出的具体要求和格式]
### 技能 3: [技能名称]
- [核心能力描述 - 说明该技能的主要作用和知识基础]
- [应用方法 - 描述如何运用该技能为用户提供服务包括具体的实施方式]
## 工作流 ## 工作流
1. 描述角色工作流程的第一步 1. 描述角色工作流程的第一步
@ -183,6 +200,15 @@ const startStreamingOutput = () => {
isPaused.value = false isPaused.value = false
streamTimer = setInterval(() => { streamTimer = setInterval(() => {
if (isApiComplete.value && !isPaused.value) {
//
const currentAnswer = chatMessages.value[chatMessages.value.length - 1]
if (currentAnswer && currentAnswer.role === 'ai') {
currentAnswer.content = fullContent .value
}
stopStreaming()
return
}
if (!isPaused.value && currentDisplayIndex.value < fullContent.value.length) { if (!isPaused.value && currentDisplayIndex.value < fullContent.value.length) {
// 1-3 // 1-3
const step = Math.min(3, fullContent.value.length - currentDisplayIndex.value) const step = Math.min(3, fullContent.value.length - currentDisplayIndex.value)
@ -256,6 +282,7 @@ const getWrite = (reader: any) => {
if (done) { if (done) {
// //
loading.value = false loading.value = false
isApiComplete.value = true
return return
} }
const decoder = new TextDecoder('utf-8') const decoder = new TextDecoder('utf-8')
@ -283,7 +310,6 @@ const getWrite = (reader: any) => {
} }
} }
if (chunk.is_end) { if (chunk.is_end) {
isApiComplete.value = true
return Promise.resolve() return Promise.resolve()
} }
} }
@ -317,6 +343,7 @@ const showContinueButton = computed(() => {
}) })
function generatePrompt(inputValue: any) { function generatePrompt(inputValue: any) {
isApiComplete.value=false
loading.value = true loading.value = true
const workspaceId = user.getWorkspaceId() || 'default' const workspaceId = user.getWorkspaceId() || 'default'
chatMessages.value.push({ content: inputValue, role: 'user' }) chatMessages.value.push({ content: inputValue, role: 'user' })
@ -369,6 +396,9 @@ const handleSubmit = (event?: any) => {
if (!originalUserInput.value) { if (!originalUserInput.value) {
originalUserInput.value = inputValue.value originalUserInput.value = inputValue.value
} }
if (isPaused.value || isStreaming.value) {
return
}
if (inputValue.value) { if (inputValue.value) {
generatePrompt(inputValue.value) generatePrompt(inputValue.value)
inputValue.value = '' inputValue.value = ''