3.5 KiB
3.5 KiB
📋 点击"执行一次"的完整流程说明
🔄 当前实现的流程
1. 前端触发 (InfoReporter.vue)
// 用户点击任务卡片右上角三点菜单中的"执行一次"
@click.stop="executeOnce(task)"
2. 数据准备阶段
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)
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. 传递给其他团队的数据格式
{
"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
}
🎯 关键点说明
- 数据源长文本: 类似Ext4文档,每个数据源都会有几千到几万字的详细内容
- 用户需求: 用户在创建任务时输入的具体要求和关注点
- 多数据源支持: 可以同时处理多个不同类型的数据源
- 异步处理: 获取数据源内容和调用API都是异步的
⚠️ 待替换的API调用点
// TODO: 未来需要替换为刘老师的数据库API
// 示例:
// const response = await fetch(`/api/sources/${source.id}/content`)
// const content = await response.text()
现在点击"执行一次"时,系统会准备好完整的数据(用户需求 + 数据源长文本),然后传递给其他同学的报告生成API!