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

3.5 KiB
Raw Blame History

📋 点击"执行一次"的完整流程说明

🔄 当前实现的流程

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
}

🎯 关键点说明

  1. 数据源长文本: 类似Ext4文档每个数据源都会有几千到几万字的详细内容
  2. 用户需求: 用户在创建任务时输入的具体要求和关注点
  3. 多数据源支持: 可以同时处理多个不同类型的数据源
  4. 异步处理: 获取数据源内容和调用API都是异步的

⚠️ 待替换的API调用点

// TODO: 未来需要替换为刘老师的数据库API
// 示例:
// const response = await fetch(`/api/sources/${source.id}/content`)
// const content = await response.text()

现在点击"执行一次"时,系统会准备好完整的数据(用户需求 + 数据源长文本然后传递给其他同学的报告生成API