Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 36 additions & 6 deletions ui/src/views/application/component/GeneratePromptDialog.vue
Original file line number Diff line number Diff line change
Expand Up @@ -133,17 +133,34 @@ const promptTemplates = {
必须严格遵循以下规则:
1. **严格禁止输出解释、前言、额外说明**,只输出最终结果。
2. **严格使用以下格式**,不能缺少标题、不能多出其他段落。
3. **如果用户需求不明确,就忽略用户需求**。

# 角色:

角色概述和主要职责的一句话描述

## 目标:
角色的工作目标,如果有多目标可以分点列出,但建议更聚焦1-2个目标

## 技能:
1. 为了实现目标,角色需要具备的技能1
2. 为了实现目标,角色需要具备的技能2
3. 为了实现目标,角色需要具备的技能3
## 核心技能:
### 技能 1: [技能名称,如作品推荐/信息查询/专业分析等]
1. [执行步骤1 - 描述该技能的第一个具体操作步骤,包括条件判断和处理方式]
2. [执行步骤2 - 描述该技能的第二个具体操作步骤,包括如何获取或处理信息]
3. [执行步骤3 - 描述该技能的最终输出步骤,说明如何呈现结果]

===回复示例===
- 📋 [标识符]: <具体内容格式说明>
- 🎯 [标识符]: <具体内容格式说明>
- 💡 [标识符]: <具体内容格式说明>
===示例结束===

### 技能 2: [技能名称]
1. [执行步骤1 - 描述触发条件和初始处理方式]
2. [执行步骤2 - 描述信息获取和深化处理的具体方法]
3. [执行步骤3 - 描述最终输出的具体要求和格式]

### 技能 3: [技能名称]
- [核心能力描述 - 说明该技能的主要作用和知识基础]
- [应用方法 - 描述如何运用该技能为用户提供服务,包括具体的实施方式]

## 工作流:
1. 描述角色工作流程的第一步
Expand Down Expand Up @@ -183,6 +200,15 @@ const startStreamingOutput = () => {
isPaused.value = false

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) {
// 每次输出1-3个字符,模拟真实的流式输出
const step = Math.min(3, fullContent.value.length - currentDisplayIndex.value)
Expand Down Expand Up @@ -256,6 +282,7 @@ const getWrite = (reader: any) => {
if (done) {
// 流数据接收完成,但定时器继续运行直到显示完所有内容
loading.value = false
isApiComplete.value = true
return
}
const decoder = new TextDecoder('utf-8')
Expand Down Expand Up @@ -283,7 +310,6 @@ const getWrite = (reader: any) => {
}
}
if (chunk.is_end) {
isApiComplete.value = true
return Promise.resolve()
}
}
Expand Down Expand Up @@ -317,6 +343,7 @@ const showContinueButton = computed(() => {
})

function generatePrompt(inputValue: any) {
isApiComplete.value=false
loading.value = true
const workspaceId = user.getWorkspaceId() || 'default'
chatMessages.value.push({ content: inputValue, role: 'user' })
Expand Down Expand Up @@ -369,6 +396,9 @@ const handleSubmit = (event?: any) => {
if (!originalUserInput.value) {
originalUserInput.value = inputValue.value
}
if (isPaused.value || isStreaming.value) {
return
}
if (inputValue.value) {
generatePrompt(inputValue.value)
inputValue.value = ''
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

角色概述和主要职责的一句话描述

  • 文本生成与信息检索助手,负责根据用户输入自动生成文本并提供相关信息。

功能与流程:

核心技能:

技能 1: 作品推荐
  1. 获取内容:从数据库中查找相似主题的作品集合。
  2. 筛选排序:对搜索结果进行基于评分、热度等方面的排序,以获得最佳匹配。
  3. 展示内容:将精选结果以列表形式展现给用户提供选择,并提供详细的介绍和评价链接。
- 👩‍💻 获取内容:从数据库中提取相关主题的作品集合。
- 🔔 筛选排序:根据评分及热度对作品进行排序以提高用户体验。
- ➖ 展示内容:按照预设样式展示推荐作品列表,每项包含详细信息和访问链接。
技能 2: 信息查询
  1. 识别关键词:自动检测用户输入的关键词,以便于快速定位所需的信息源。
  2. 检索索引:利用大数据搜索引擎进行关键词搜索,返回符合条件的结果集。
  3. 整合信息:合并多个来源的相似信息,消除重复,并按重要性排序后呈现出来。
- 🧠 识别关键词:通过自然语言处理技术从用户提问中提取关键要素。
- 🔍 检索索引:在预先定义的主题词汇库中进行精确匹配来获取大量相关文档。
- ⚙️ 整合信息:汇总各类资料,并按权重进行排布以形成完整的答案摘要。
技能 3: 专业分析
  1. 数据收集:依据用户需求,在系统内部或外部数据库中收集相关的行业研究报告和技术动态等资源。
  2. 数据分析:运用统计学方法和机器学习模型对收集到的数据进行深入挖掘和归纳总结。
  3. 趋势预测:结合历史数据和市场分析报告做出未来产业发展趋势预测,供决策参考。
- 👌 数据收集:从权威机构或第三方平台获取详尽的专业研究报告。
- 🔗 分析工具:借助高级数据分析软件和可视化图表提升结论的可信度。
- ✃ 趋势预测:基于过往业绩数据及当前经济环境评估未来的商业走向。

工作流:

  1. 用户点击“提交”按钮发送输入请求。
  2. 系统接收到用户输入并将该请求转换为对话消息记录在 chatMessages 数组中。
  3. 首先尝试使用缓存中的历史回答作为响应,若无可用则调用相应的API接口生成新答案。期间会显示加载动画以提示用户等待。
  4. API 接口返回生成的答案内容,并更新实时渲染的聊天面板中。
  5. 若API调用完成且未暂停,则停止滚动播放的功能。
  6. 完成所有后续步骤(如添加新的问题反馈)后,重新开始计时以保证流畅的交互体验。
  7. 提交完成后重置用户输入框为空状态以准备下一步操作。

优化建议:

  • 增加错误处理机制:确保当API出现异常情况时可以正确捕获并通知用户。
  • 支持多语言翻译:考虑到不同用户的国际使用需求,考虑集成语音转文字功能和多语种翻译选项(需提前准备好对应的语料库)。

Expand Down
Loading