DieselChen

个人博客,记录一下学习的点滴~

0%

客户分析功能变更

本次会议明确了客户分析功能的重大变更方向,重点围绕多客户分析支持对比分析功能展开,涉及UI交互、数据结构和异步任务管理的调整

会议内容详细阐述

1. 会议基本信息

  • 会议主题:客户分析功能变更安排
  • 时间:2025年4月18日 16:34 - 16:53
  • 参与人员:说话人A(主导)、说话人B(技术讨论)、其他未明确发言的成员(如朱晨、小关等)。

2. 核心议题与讨论内容

2.1 客户分析功能变更概述
  • 主要变更点
    • 一个任务下支持多个客户分析(原为单一客户分析)。
    • 新增独立分析对比分析两种模式,需调整UI和数据结构。
2.2 独立分析流程
  • 任务创建与客户添加
    • 用户点击“创建”即生成任务,任务包含客户列表。
    • 客户来源:暂仅支持手动输入(名称/网址),未来可能支持从客户库选择。
  • 执行分析
    • 勾选客户后执行独立分析,每个客户生成独立报告(表格形式)。
    • 进度显示:通过拆分分析步骤(如5步,每步20%进度)并更新数据库实现。
    • 状态控制:支持“分析中”“已完成”“停止/重启分析”(需异步检测任务取消状态)。
2.3 对比分析流程
  • 实现逻辑
    • 先对选中的多个客户分别执行独立分析,再基于独立报告生成合并的对比报告。
    • 对比分析结果以合并表格形式展示,并生成独立的思维导图和文本报告。
  • 数据存储
    • 保留所有中间报告(如3个客户对比会生成4份报告),后续可能根据需求隐藏独立报告。
2.4 报告生成与导出
  • 自动生成:分析完成后自动生成报告(含封面、思维导图、文本)。
  • 导出功能
    • 支持PDF导出(思维导图以Markdown文本形式存储,导出时转换)。
    • 文本内容直接导出。
2.5 数据结构调整
  • 任务类型扩展
    • 原任务表(agent_task)需扩展字段或新建表(如job表)以区分任务类型(客户分析/原任务)。
    • 抽象任务结构,支持不同类型任务的动态渲染。
2.6 其他技术细节
  • 停止分析实现:需在任务中循环检测取消状态,异步队列无法直接终止任务。
  • 流式对象输出:小关需评估实现难度,优先处理。
  • 批量删除功能:根据老板需求,由小关通过Server Action实现。
2.7 待确认问题
  • 对比分析报告的展示方式(是否隐藏独立报告)。
  • 任务表结构调整方案(扩展字段或新建表)。

3. 任务分配与后续计划

  • 朱晨
    • 处理分析进度更新逻辑(队列步骤拆分)。
    • 评估“自动扩充产品库”功能的优先级。
  • 小关
    • 实现批量删除功能(Server Action)。
    • 研究流式对象输出技术难点。
  • 全体
    • 文档更新(客户分析功能变更说明)。

会议总结

本次会议明确了客户分析功能的重大变更方向,重点围绕多客户分析支持对比分析功能展开,涉及UI交互、数据结构和异步任务管理的调整。关键结论如下:

  1. 功能设计:独立分析与对比分析需分阶段实现,优先保证基础流程,再优化细节(如报告展示)。
  2. 技术实现:需重构任务表结构,异步任务控制需自定义取消逻辑。
  3. 分工协作:开发团队分头处理进度更新、批量删除等具体任务,并持续同步进展。
  4. 灵活性保留:部分设计(如报告存储)暂按宽松方案实现,后续根据反馈调整。

下一步:各成员按分工推进开发,优先解决技术难点(如流式输出),后续会议跟进进度。

客户分析任务的创建和执行流程

1. 创建客户分析任务

创建基本任务

  • 调用 createCustomerAnalysisTask 函数(位于 companyResearch/actions.ts
  • 生成默认任务名称(格式:yyyy-MM-dd-HH:mm:ss客户分析
  • agentTaskTable 表中插入新记录:
    • 任务类型:customer_analysis
    • 状态:pending

绑定公司研究到任务

  • 单个公司:使用 bindCompanyResearchToTask 函数
  • 多个公司:使用 bindMultipleCompanyResearchToTask 函数
  • 每个公司创建一条 companyResearch 记录:
    • 状态:pending
    • 分析模式:independent(独立分析)
  • 注意:这些函数仅创建记录,不启动实际分析

启动分析

  • 单个分析:调用 startCompanyResearchAnalysis
  • 多个分析:调用 startMultipleCompanyResearchAnalysis
  • 将公司研究任务添加到 Bull MQ 队列处理

2. 分析执行流程

独立分析过程

  1. 创建 CompanyResearch 类实例
  2. 执行多个研究步骤(通过 run 方法):
    • 研究公司概况 (researchCompanyProfile)
    • 研究公司进口信息 (researchCompanyImports)
    • 分析网站流量 (researchWebsiteTraffic)
    • 研究公司产品 (researchCompanyProducts)
    • 研究公司新闻 (researchCompanyNews)
    • 研究团队成员 (researchTeamMembers)
    • 生成最终报告 (generateFinalReport)
    • 生成思维导图 (generateMindMap)
  3. 更新数据库中的状态和结果

对比分析过程

  • 使用 createComparisonAnalysis 创建对比分析
  • 将多个独立分析关联到同一个 comparisonId
  • 通过 startComparisonAnalysis 开始对比分析
  • 系统先确保所有独立分析完成,再执行对比分析

研究深度流程

  • 每个研究步骤使用 deepResearchFlow 功能(ReAct循环):
    • 思考
    • 搜索
    • 访问网页
  • 使用的代理(agents):
    • researchThinkingAgent:决定下一步行动
    • searchAndAnalyzerAgent:执行搜索并分析结果
    • webContentReaderAgent:读取和分析网页内容
    • generateResearchReportAgent:生成最终研究报告

3. 数据结构

AgentTask

  • 表示客户分析任务
  • 关键字段:
    • id, name, employeeId, status, taskType
  • 任务类型:customer_analysis
  • 状态包括:pending, processing, completed, failed

CompanyResearch

  • 表示公司研究
  • 关键字段:
    • uid, name, status, result, agentTaskId, analysisMode
  • 分析模式:
    • independent(独立分析)
    • comparative(对比分析)
  • 状态包括:pending, processing, completed, failed, canceled

4. 结果和通知

  • 分析完成后:
    • 结果保存在 companyResearch 表的 result 字段(JSON格式)
    • 结果包括:finalReport, mindMap, traffic
    • 系统向员工发送电子邮件通知
  • 对比分析:
    • 检查所有独立分析是否完成
    • 如果完成,自动启动对比分析

整个系统使用队列处理耗时分析任务,并使用AI执行研究分析工作。

欢迎关注我的其它发布渠道

-----------本文结束感谢您的阅读-----------