XinXiKuaiBaoYuan/执行一次功能流程说明.md

104 lines
3.5 KiB
Markdown
Raw Normal View History

# 📋 点击"执行一次"的完整流程说明
## 🔄 **当前实现的流程**
### **1. 前端触发 (InfoReporter.vue)**
```javascript
// 用户点击任务卡片右上角三点菜单中的"执行一次"
@click.stop="executeOnce(task)"
```
### **2. 数据准备阶段**
```javascript
const executeOnce = async (task: any) => {
// 1. 关闭三点菜单
activeTaskMenu.value = null
// 2. 获取数据源的长文本内容
const sourceContents = await getSourceContents(task.sourcesConfig)
// 3. 准备传递给其他团队的完整数据
const requestData = {
task_id: task.id,
requirement: task.requirement, // 用户输入的需求
source_contents: sourceContents, // 数据源对应的长文本段
web_search_enabled: task.sourcesConfig?.webSearchEnabled || false
}
}
```
### **3. 数据源内容获取 (getSourceContents)**
```javascript
const getSourceContents = async (sourcesConfig: any) => {
const sourceContents = []
for (const source of sourcesConfig.presetSources) {
// TODO: 实际应该调用刘老师的数据库API
// const response = await fetch(`/api/sources/${source.id}/content`)
// const content = await response.text()
// 现在使用模拟的长文本数据
let content = ''
switch (source.category) {
case 'wechat':
content = '# 微信企微群聊记录...' // 模拟聊天记录
case 'wechatOfficial':
content = '# 公众号文章内容...' // 模拟公众号文章
case 'web':
content = '# 网页内容...' // 模拟网页抓取内容
// ... 其他数据源类型
}
sourceContents.push({
source_id: source.id,
source_name: source.name,
source_type: source.category,
content: content.trim() // 类似Ext4文档这样的长文本
})
}
return sourceContents
}
```
### **4. 传递给其他团队的数据格式**
```json
{
"task_id": 123,
"requirement": "关注对象OpenAI\n信息侧重点产品发布动态和功能更新\n要求总结全面、客观、准确",
"source_contents": [
{
"source_id": "wechat-AI技术群",
"source_name": "AI技术群",
"source_type": "wechat",
"content": "# 微信企微群聊记录 - AI技术群\n\n[2025-09-19 09:00] 张三: 大家好今天我们来讨论一下AI技术的最新发展\n[2025-09-19 09:02] 李四: OpenAI最近发布了新的GPT模型性能提升很大\n...(几千字的聊天记录)"
},
{
"source_id": "web-openai.com",
"source_name": "OpenAI官网",
"source_type": "web",
"content": "# OpenAI官方发布GPT-4 Turbo正式上线\n\n发布时间2025年9月19日\n\n### 主要更新内容\n\nOpenAI今天宣布GPT-4 Turbo正式向所有用户开放...\n几千字的网页内容"
}
],
"web_search_enabled": true
}
```
## 🎯 **关键点说明**
1. **数据源长文本**: 类似Ext4文档每个数据源都会有几千到几万字的详细内容
2. **用户需求**: 用户在创建任务时输入的具体要求和关注点
3. **多数据源支持**: 可以同时处理多个不同类型的数据源
4. **异步处理**: 获取数据源内容和调用API都是异步的
## ⚠️ **待替换的API调用点**
```javascript
// TODO: 未来需要替换为刘老师的数据库API
// 示例:
// const response = await fetch(`/api/sources/${source.id}/content`)
// const content = await response.text()
```
现在点击"执行一次"时,系统会准备好完整的数据(用户需求 + 数据源长文本然后传递给其他同学的报告生成API