4.4 KiB
Raw Blame History

name description
pipeline-opportunity 商机产线能力包——招标市场情报(数据爬取平台)→热点软件推荐→每日AI招标→研发报告→人工确认→研发审批。含爬虫平台接入配置与工具清单。

pipeline_opportunity

商机产线能力包:把中国招标市场情报转化为软件研发商机。挂载到宿主应用(pipeline-app)即生效, 项目 sd_projects.pipeline_id='opportunity_general' 时自动启用全部工具。

平台边界(必读)

数据爬取平台 (ebpe.cc:/d/ymq/work/tender_opp)     产线平台 (本模块)
  采集/存储/去重/只读查询                            商机业务闭环
  ┌──────────────────────────┐                    ┌──────────────────────────┐
  │ ccgp+ggzy 采集 (30min)    │   内网HTTP只读      │ 热点推荐/每日AI招标        │
  │ SQLite 持久 (1700+条)     │ ←──────────────── │ 研发报告→人工确认→研发审批   │
  │ http_api.py :9085 +token │                    │ opp_reports/opp_approvals │
  └──────────────────────────┘                    └──────────────────────────┘
  • 本模块不爬取、不存招标原始数据,只消费爬虫平台;报告/审批状态落产线库。
  • 爬虫平台侧细节见其仓库 BOUNDARY.md/README.md(HTTP 端点 /api/tenders 等)。

Architecture

pipeline_opportunity/
├── init.py                  # load_pipeline_opportunity()(幂等挂载)
├── opp_common.py            # DB上下文/爬虫HTTP客户端/状态机/人工任务
├── opp_data_capability.py   # 爬虫平台只读封装(热点/搜索/详情/每日AI/健康度)
├── opp_report_capability.py # 报告+审批状态机(draft→confirmed→approval→approved/rejected)
├── opp_ability.py           # 12工具+prompt+2角色+4 slash 命令(PipelineAbility 注册)
├── wwwroot/                 # opp_reports / opp_approvals CRUD 页面(xls2ui 生成)
├── models/ + json/          # DDL 与 CRUD 源
└── scripts/load_path.py     # RBAC 路径注册

爬虫平台接入(配置不硬编码)

appbase params 表两个键(opp_common.get_crawler_config 读取,默认内网地址兜底):

键 值
tender_api_base http://192.168.16.2:9085(内网网卡绑定,公网不可达)
tender_api_token 爬虫平台 state/api.env 的 TENDER_API_TOKEN

工具(主 agent,opp_ 前缀)

工具 用途
opp_hot_software(days,top) 热点软件推荐:招标量+预算+地区排名
opp_daily_ai_tenders(date) 每日 AI/Agent 招标展示数据
opp_search_tenders(keyword,days,source,limit) 关键词检索
opp_tender_detail(tender_id) 单条详情(原文/预算/联系人/来源链接)
opp_crawler_stats() 爬虫平台采集健康度
opp_create_report / opp_update_report 报告草稿创建/补写
opp_list_reports / opp_get_report 报告列表/全文
opp_submit_report(report_id) 提交人工确认(创建门禁任务)
opp_list_approvals 审批单列表
opp_diagnose 产线诊断

角色:agent.opp_analyst / agent.opp_writer;slash:/hot /ai /reports /oppdiag。

状态机与门禁(不要绕过)

draft ──人工确认──> confirmed ──发起──> approval_initiated ──人工结论──> approved
  ↑                                                                    └ rejected ──> draft(可重来)
  • 确认/审批都是 pipeline_human_tasks 人工任务(task_type: opp_report_confirm / opp_dev_approval),结论由人工回流,agent 禁止自批自审。
  • 非法迁移一律拒绝(REPORT_TRANSITIONS)。
  • 报告中的招标数字必须来自工具返回的真实数据,禁止编造;引用带来源链接。

部署清单(宿主侧)

  1. build.sh(建表+种子+wwwroot 软链+pip install)
  2. app 入口 load_pipeline_opportunity()(已接线,try/except 兜底)
  3. scripts/load_path.py 注册 RBAC
  4. i18n 合并 i18n/{zh,en}/msg.txt
  5. params 表配 tender_api_base / tender_api_token
  6. 重启 → 驾驶舱验证 /hot 或 opp_diagnose