AI智能获取线索 - 规格增量
ADDED Requirements
Requirement: AI爬虫来源配置
系统 MUST 支持配置AI爬虫的数据来源,包括窄门、红餐、老板内参、大众点评海外站、EASI、foodpanda、Uber Eats、饭团外卖、yelp、咖门、小红书、火锅餐见、餐饮O2O等平台。
Scenario: 新增爬虫来源
- WHEN 系统管理员在AI爬虫配置页面新增来源(如"红餐"),设置爬取频率(每天凌晨2点)、启用状态="启用",并保存
- THEN 系统创建爬虫来源配置,定时任务按配置频率触发爬取
Scenario: 修改爬虫来源
- WHEN 系统管理员修改爬虫来源的爬取频率或启用状态
- THEN 系统更新配置,下次定时任务按新配置执行
Scenario: 停用爬虫来源
- WHEN 系统管理员将某爬虫来源状态设为"停用"
- THEN 系统停止爬取该来源的数据
Requirement: AI爬虫数据抓取
系统 MUST 通过定时任务自动触发AI爬虫,从配置的数据源抓取原始数据。
Scenario: 定时触发爬虫
- WHEN 定时任务触发(如每天凌晨2点)
- THEN 系统调用AI爬虫服务,从启用的数据源抓取数据(如"红餐"平台的餐饮品牌信息)
Scenario: 爬虫执行成功
- WHEN AI爬虫成功抓取1000条数据
- THEN 系统记录爬取成功数量、抓取时间、数据来源
Scenario: 爬虫执行失败
- WHEN AI爬虫因网络错误或平台反爬虫机制执行失败
- THEN 系统记录失败原因(如"网络超时"、"平台拒绝访问"),触发失败重试机制
Scenario: 多时区定时任务
- WHEN 定时任务配置为"每天凌晨2点",服务器时区为UTC
- THEN 系统按UTC时间执行任务,展示时转换为用户本地时区
Requirement: AI数据结构化提取
系统 MUST 使用AI技术对爬取的原始数据进行结构化提取,识别并填充客户类型、品牌业态、门店Logo、旗下店铺数、企业经营模式、企业知名度、客户等级、使用系统等字段。
Scenario: 提取基本信息
- WHEN AI爬虫抓取到某餐饮品牌的原始数据
- THEN 系统通过AI结构化提取:品牌名称="海底捞",品牌国家="中国",品牌业态="正餐",公司名称="海底捞国际控股有限公司"
Scenario: 提取联系信息
- WHEN AI识别到原始数据中的电话号码、邮箱、微信
- THEN 系统自动填充:电话="+86-21-12345678",邮箱="contact@haidilao.com",微信="haidilao_service"
Scenario: 提取品牌Logo
- WHEN AI识别到原始数据中的门店Logo图片URL
- THEN 系统下载Logo图片并上传至CDN,存储CDN地址到store_logo字段
Scenario: 提取店铺数量
- WHEN AI识别到原始数据中的店铺数量信息(如"全国1000+门店")
- THEN 系统提取数值并填充到store_count字段(如1000)
Scenario: 提取企业经营模式
- WHEN AI识别到原始数据中的经营模式描述(如"直营连锁品牌")
- THEN 系统提取并匹配枚举值,填充到operation_mode字段(如"直营连锁")
Scenario: 提取企业知名度
- WHEN AI识别到原始数据中的知名度描述(如"上市公司"、"行业龙头")
- THEN 系统提取并匹配枚举值,填充到company_fame字段(如"上市及龙头")
Scenario: 提取使用系统
- WHEN AI识别到原始数据中的POS系统信息(如"使用美团系统")
- THEN 系统提取并匹配枚举值,填充到used_system字段(如"美团")
Scenario: 计算客户等级
- WHEN AI提取到店铺数量=1000+
- THEN 系统根据规则自动计算并填充线索等级为"S级"
Scenario: 计算数据置信度
- WHEN AI结构化提取完成后
- THEN 系统评估数据可信度并填充置信度分数(如85%),用于人工复核优先级
Requirement: AI智能标签打标
系统 MUST 自动为AI获取的线索打标签,包括结果标签(落地门店、落地国家、有海外招聘、有海外合作商)和来源标签(标签+内容+来源,支持点击跳转)。
Scenario: 打标签"落地门店"
- WHEN AI识别到该品牌在特定国家有门店(如"海底捞在新加坡有门店")
- THEN 系统自动打标签"落地门店-新加坡"
Scenario: 打标签"落地国家"
- WHEN AI识别到该品牌为海外品牌(如"美国品牌EASI")
- THEN 系统自动打标签"落地国家-美国"
Scenario: 打标签"有海外招聘"
- WHEN AI识别到原始数据中包含招聘信息且岗位在海外(如"在新加坡招聘店长")
- THEN 系统自动打标签"有海外招聘"
Scenario: 打标签"有海外合作商"
- WHEN AI识别到原始数据中提及海外合作伙伴(如"与新加坡Foodpanda合作")
- THEN 系统自动打标签"有海外合作商"
Scenario: 生成来源标签
- WHEN AI获取线索完成
- THEN 系统生成来源标签,格式为"标签-内容-来源"(如"落地门店-新加坡店-窄门"),来源可点击跳转至原始URL
Requirement: AI线索去重入库
系统 MUST 将AI结构化后的数据与现有公海池和个人线索进行去重校验(品牌名称+品牌国家/地区组合唯一性),重复则更新,不重复则新增。
Scenario: 新线索入库
- WHEN AI获取到新线索,品牌名称="海底捞",品牌国家="新加坡",公海池和个人线索中均不存在该组合
- THEN 系统创建新线索记录,线索状态="未分配",AI标识="AI",记录AI抓取时间,进入公海池
Scenario: 重复线索更新
- WHEN AI获取到线索,品牌名称="海底捞",品牌国家="新加坡",公海池中已存在该组合
- THEN 系统更新现有线索记录(如更新联系方式、店铺数量等),记录AI抓取时间为最新时间,不创建新记录
Scenario: 去重失败提示
- WHEN 去重校验时发现品牌组合已存在且线索状态="已转化"
- THEN 系统不更新该线索,记录日志"线索已转化为客户,跳过更新"
Requirement: AI标识标记
系统 MUST 为所有AI获取的线索自动打标"AI",用于数据统计与溯源。
Scenario: 自动打标AI标识
- WHEN 系统通过AI爬虫获取线索并入库
- THEN 系统自动设置ai_flag字段=true,在线索列表中显示"AI"标签
Scenario: 区分AI与手动线索
- WHEN 用户查看线索列表
- THEN 系统在"线索来源"列显示AI来源(如"AI-红餐")或手动来源(如"官网"),通过AI标识区分数据来源
Scenario: AI数据统计
- WHEN 管理员查看数据统计报表
- THEN 系统按AI标识统计AI线索数量、转化率、覆盖率等指标
Requirement: 失败重试机制
系统 MUST 实现AI爬虫的失败重试机制,采用指数退避策略(1分钟、5分钟、30分钟、2小时),最多重试3次。
Scenario: 首次失败重试
- WHEN AI爬虫首次执行失败(如网络超时)
- THEN 系统等待1分钟后自动重试
Scenario: 第二次失败重试
- WHEN AI爬虫第一次重试仍然失败
- THEN 系统等待5分钟后自动第二次重试
Scenario: 第三次失败重试
- WHEN AI爬虫第二次重试仍然失败
- THEN 系统等待30分钟后自动第三次重试
Scenario: 重试次数耗尽
- WHEN AI爬虫第三次重试仍然失败
- THEN 系统停止重试,记录最终失败原因到审计日志,发送告警通知给系统管理员
Requirement: 审计日志
系统 MUST 记录每次AI爬虫任务的执行结果,包括成功数量、失败数量、失败原因、执行时间等。
Scenario: 记录成功日志
- WHEN AI爬虫任务成功执行
- THEN 系统记录审计日志:任务ID、数据源、执行时间、成功数量、失败数量、数据置信度平均值
Scenario: 记录失败日志
- WHEN AI爬虫任务执行失败
- THEN 系统记录审计日志:任务ID、数据源、执行时间、失败原因、重试次数
Scenario: 查看审计日志
- WHEN 系统管理员在AI爬虫配置页面点击"查看日志"
- THEN 系统展示所有历史任务的审计日志,支持按数据源、执行时间、执行状态查询
Requirement: AI线索质量评估
系统 MUST 根据数据置信度对AI线索进行质量分级,辅助人工复核优先级。
Scenario: 高置信度线索
- WHEN AI提取的数据置信度≥90%
- THEN 系统标记为"高质量线索",优先展示,无需人工复核
Scenario: 中置信度线索
- WHEN AI提取的数据置信度为60%-89%
- THEN 系统标记为"中质量线索",建议人工复核
Scenario: 低置信度线索
- WHEN AI提取的数据置信度小于 60%
- THEN 系统标记为"低质量线索",强制人工复核后才可分配
Scenario: 置信度展示
- WHEN 用户查看AI线索详情
- THEN 系统在"AI信息"区块展示数据置信度分数(如"85%")和质量等级(如"中质量线索")
Requirement: AI爬虫合规性
系统 MUST 确保AI爬虫行为符合各平台的使用条款和法律法规要求。
Scenario: 遵守robots.txt
- WHEN AI爬虫访问目标网站
- THEN 系统检查并遵守该网站的robots.txt规则,不抓取禁止的内容
Scenario: 请求频率限制
- WHEN AI爬虫抓取数据
- THEN 系统控制请求频率,避免对目标网站造成过大压力(如每秒最多1次请求)
Scenario: 用户代理标识
- WHEN AI爬虫发送HTTP请求
- THEN 系统在User-Agent中明确标识爬虫身份和联系方式
Requirement: AI线索与自动分配集成
系统 MUST 在AI线索入库后自动触发分配流程,根据自动分配规则将线索分配给销售人员。
Scenario: AI线索自动分配
- WHEN AI线索成功进入公海池(线索状态="未分配")
- THEN 系统自动查找匹配的分配规则,按规则分配给销售人员,更新线索状态="待处理",发送通知给归属人
Scenario: AI线索分配通知
- WHEN AI线索自动分配成功
- THEN 系统发送多语言通知给归属人,包含线索品牌名称、数据来源(如"AI-红餐")、分配时间、数据置信度
Requirement: AI国际化支持
系统 MUST 支持海外餐饮平台的数据抓取,识别多语言标签,自动识别海外国家/地区。
Scenario: 抓取海外平台数据
- WHEN AI爬虫从Uber Eats、foodpanda、yelp等海外平台抓取数据
- THEN 系统正确解析英文或其他语言内容,结构化提取字段
Scenario: 多语言标签识别
- WHEN AI识别到原始数据中包含多语言内容(如中英双语品牌名称)
- THEN 系统提取并存储多语言版本,前端根据用户语言偏好展示对应语言
Scenario: 海外国家自动识别
- WHEN AI识别到原始数据中的地址信息(如"Singapore"或"新加坡")
- THEN 系统自动匹配并填充brand_country字段为"新加坡"(支持200+国家/地区)