一条公开信息,怎么走到销售手里

把「谁可能要用人、要买什么」从公开信息里挖出来,逐层加工、每层可核对 —— 这套架构就是为「提前发现」搭的。

8 层分层设计 事实与判断分离 AI 只做表达,不造事实 SQLite → PostgreSQL
已入库公开信息(条)
在线信息源
变化信号
机会事件(带窗口)
企业主档
客户档案事实(带出处)

一、总体分层:信息从公开页面走到销售手里

每一层只干一件事,层与层之间靠数据交接 —— 所以「加一个信息源」只要改最上面那层的配置,下面七层都不用动。图中蓝点=数据在层间流动。

小屏幕:这张图可以左右滑动看全。

1 采集层 多源公开信息,加源=改配置 已实现 2 事实层 统一落库,抓取失败必须留痕 已实现 3 信号层 词表归类,标注证据强度 已实现 4 规则层 我卖什么 × 事件 × 客户类型 已实现 5 应用层 接口服务,按域名分数据域 已实现 6 AI 层 只做表达与推理,逐数字校验 已实现 7 客户端层 H5 已上线,小程序待 AppID 进行中 8 运维层 nginx + systemd,自动 HTTPS 已实现

① 采集层 已实现

配置驱动的通用采集器 + 专用采集器,已接 个在线源(招投标、环评受理公示、发改委、上市公司公告、官网变化监测、公开检索…)。加源=改配置,不改代码

② 事实层 已实现

统一落库:标题 / 摘要 / 原文链接 / 发布时间 / 来源,批内去重、每条独立事务。抓取失败必须抛错并留痕 —— 绝不把「抓不到」伪装成「今天没有新变化」

③ 信号层 已实现

由词表(配置)把事实归到统一事件类型,并标注分层(前置 / 已发生)与证据强度;例行文件(法律意见书、工作制度、股东会通知)先剔除,不占销售注意力。

④ 规则层 已实现

三层键:我卖什么 × 事件 × 客户类型,算出最佳 / 最晚窗口、强信号(90 天内同类变化 ≥3 次)、变化包合并。规则全部是配置数据,按每个人的卖方包选。

⑤ 应用层 已实现

接口服务:事件流 / 客户 / 行业 / 画像 / 候选 / 额度 / 账号 / 档案 / 线索。数据域按域名解析,解析不出来就返回空域,绝不回落到别人家的数据

⑥ AI 层 已实现

只做「表达与推理」,不产生事实:画像生成、事件分析、提问式启发、多维档案抽取。输出做逐数字溯源校验,材料里找不到的数字自动改写为「待核实」。

⑦ 客户端层 进行中

手机端 H5 已上线(浏览器直接打开,不用装 App);规划走一套代码同出微信小程序 + H5,小程序待微信 AppID。

⑧ 运维层 已实现

nginx + systemd 托管服务,HTTPS 证书自动续期;采集与批处理串行执行(低配机器不打爆);巡检接口需令牌才能看。

二、数据层:现在用什么、以后换什么

现在:SQLite(单机嵌入式)已实现

  • 20 张表;当前真实数据量(实时取自系统):原始信息 条、信号 、机会事件 (其中前置 )、企业 、客户档案事实 、在线源
  • 优点:零运维、单文件、开发期迁移成本低
  • 边界:并发写弱、无行级权限、备份靠文件 —— 够现在用,不够多租户并发用

规划:PostgreSQL(多租户生产)待实现

  • 多租户:单库 + tenant_id 列 + 行级安全,租户之间强隔离
  • 并发与体量:连接池、按时间分区存事实与信号、配置与证据用 JSONB
  • 检索:模糊搜索 + 全文检索(客户名 / 统一社会信用代码防串档)
  • 运维:每日全量 + 增量归档、只读副本供报表
  • 切换方式:换数据库连接 + 迁移脚本(模型层已按此设计,业务代码不用重写)
说明
租户与账号tenant user_account login_session activity_log数据域 / 账号(口令加盐不可逆)/ 登录会话 / 全程使用留痕(登录、看事件、钉客户、记录动作)
采集source raw_item collect_run源配置(站点规则全在配置文件里)/ 原始信息 / 采集批次留痕(抓取异常可见)
事实与判断company signal event rule_pack copy_mark企业主档 / 变化信号 / 机会事件(窗口 · 强信号 · 按卖方包变化的规则变体)/ 规则包 / 可复制性标记
客户与档案customer_profile customer_fact pin action_log user_profile candidate画像(带依据)/ 11 维档案事实(每条带出处) / 钉住与额度 / 动作记录 / 引导问卷 / 候选名单(匹配度可解释)
行业industry_watch industry_news关注行业(地区 + 行业 + 频次)/ 每日行业信息 + AI 机会分析 + 关联企业

表名在此列出只为说明「数据怎么分家」;业务界面上不会出现这些名字,客户看到的是事件、客户、行业这些词。

三、AI 怎么用,和坚决不用

AI 负责(已实现)

  • 画像生成:从问卷 + 现成资料(官网链接 / 粘贴文本)读出来,不让用户从零填表
  • 事件分析:这条变化对「我卖的东西」意味着什么 + 可以想什么(提问式启发)
  • 行业机会分析:行业信息 → 机会点 → 关联企业
  • 多维档案抽取:产品 / 客户群体 / 重大项目 / 上下游 / 组织 / 政企 / 公益 / 活动 / 伙伴 / 竞对 / 技术 LLM 版待做(当前为关键词版)

AI 不负责(红线)

  • 不产生数字:输出里每个数字都必须能在材料里找到,否则自动改成「待核实」
  • 不做客户排名打分:只给「与画像的匹配度」并逐项解释
  • 不伪造身份 / 关系:查不到就留空,界面显示「待核实」
  • 不替销售决策:给的是启发式问题,不是行动指令

四、部署与运行

用户手机 / 浏览器 │ https(证书自动续期) ▼ nginx ── dingkehu.com / www …… 首页 → 登录页(H5) ├─ demo.dingkehu.com …… 演示环境(同一套 H5,登录页列出演示账号) ├─ intro.dingkehu.com …… 产品示意(姊妹页) └─ arch.dingkehu.com …… 系统架构(本页) │ /api/* 反代 ▼ 接口服务(本机 8500 端口,systemd 托管) ├─ SQLite(现在)/ PostgreSQL(规划) ├─ 定时采集:按源间隔串行跑(礼貌频率、请求间留间隔) └─ AI 通道:只做表达与推理 + 反幻觉校验

当前跑在 2 核 / 1.6G 单机上(同机还有别的业务)。重活(拉镜像 / 浏览器渲染 / 批量脚本)已约定串行执行,先看内存再开跑,避免把机器打爆。

五、未来规划(按优先级)

方向内容状态
信息源①钉钉网关搜索接入 → 微博 / 小红书 / 抖音 / 公众号定向检索;②官网变化监测铺开到更多目标客户;③前置信号源(环评受理已接,招标预告 / 招聘 / 项目备案待找可用通道)①已接入 ②进行中 ③受网络限制
客户档案关键词抽取 → LLM 抽取(带反幻觉校验),维度可配置增减v2 待做
内部知识上传产品资料 / 报价 / 案例 / 异议话术,AI 回答只用「内部知识 + 公开信息」,没依据就写「待核实」待实现
客户端H5(已上线)→ 一套代码同出微信小程序(需 AppID)小程序待 AppID
数据库SQLite → PostgreSQL(多租户行级安全、分区、连接池、备份)待实现
多租户第二家客户开通(渠道配置 + 独立机器人 + 数据域隔离),当前只有一家在用待实现
付费个人版免费额度 → 付费版本(额度、团队版、管理视图)待实现
质量工程模拟人测试常态化(4 类角色 26 项检查);真实历史回放(已做 4 年 / 11,914 条);规则由资深销售校准持续
本页数字实时取自系统 · 「已实现」=已在生产环境跑通并实测,「待实现」=已设计未开发,不做夸大
产品示意 · 进入系统 · 演示环境