怎么设计的 · 数据与 AI 怎么分工 · 现在实现了什么 · 未来怎么走(已实现 进行中 待实现)
stale 状态留痕,不伪装成"没有新条目") 已实现fail-closed(按域名解析租户,解析不出就空域,绝不回落默认) 已实现X-Monitor-Token;采集与批处理串行执行(低配机器防打爆) 已实现tenant_id 列 + 行级安全(RLS),租户数据强隔离pg_trgm 模糊搜索 + 全文检索(客户名/统一社会信用代码防串档)| 层 | 表 | 说明 |
|---|---|---|
| 租户与账号 | tenant user_account login_session activity_log | 数据域 / 账号(口令 pbkdf2+盐)/ 会话 / 全程使用留痕(登录、看事件、钉客户、记录动作) |
| 采集 | source raw_item collect_run | 源配置(站点规则全在 config)/ 原始信息 / 采集批次留痕(stale 可见) |
| 事实与判断 | company signal event rule_pack copy_mark | 企业主档 / 变化信号 / 机会事件(窗口·强信号·按卖方包规则变体)/ 规则包(配置)/ 可复制性标记 |
| 客户与档案 | customer_profile customer_fact pin action_log user_profile candidate | 画像(带依据)/ 11 维档案事实(每条带出处) / 钉住与额度 / 动作记录 / 引导问卷 / 候选名单(匹配度可解释) |
| 行业 | industry_watch industry_news | 关注行业(地区+行业+频次)/ 每日行业信息 + AI 机会分析 + 关联企业 |
实现:services/llm.py(调用 + 逐数字校验 + 降级),模型通道复用本机已配置的国产模型。
用户手机 / 浏览器
│ https(Let's Encrypt,自动续期)
▼
nginx ── dingkehu.com / www …… 首页 → 登录页(H5)
├─ demo.dingkehu.com …… 演示环境(同一套 H5,登录页列出演示账号)
├─ intro.dingkehu.com …… 产品示意(本页的姊妹页)
└─ arch.dingkehu.com …… 系统架构(本页)
│ /api/* 反代
▼
FastAPI(uvicorn,systemd 托管,端口 8500)
├─ SQLite(现在)/ PostgreSQL(规划)
├─ APScheduler:按源间隔串行采集(礼貌频率、请求间 sleep)
└─ AI 通道:国产模型(只做表达与推理 + 反幻觉校验)
当前部署:2 核 / 1.6G 单机 + Docker(同机还跑着其他业务)。重活(拉镜像 / 浏览器渲染 / 批量脚本)已约定串行执行,避免把机器打爆。
| 方向 | 内容 | 状态 |
|---|---|---|
| 信息源 | ①钉钉网关搜索 MCP(百度/博查/小宿)接入 → 微博/小红书/抖音/公众号定向检索;②官网 watchdog 铺开到更多目标客户;③前置信号源(环评受理已接,招标预告/招聘/项目备案待找可用通道) | ①已接入 ②进行中 ③受网络限制 |
| 客户档案 | 关键词抽取 → LLM 抽取(带反幻觉校验),维度可配置增减 | v2 待做 |
| 内部知识 | 上传产品资料/报价/案例/异议话术,AI 回答只用「内部知识 + 公开信息」,无依据即「待核实」 | 待实现 |
| 客户端 | H5(已上线)→ uni-app → 微信小程序(需 AppID) | 小程序待 AppID |
| 数据库 | SQLite → PostgreSQL(多租户 RLS、分区、连接池、备份) | 待实现 |
| 多租户 | 第二租户开通(渠道配置 + 独立机器人 + 数据域隔离),当前仅一个租户开源使用 | 待实现 |
| 付费 | 个人版免费额度 → 付费版本(额度、团队版、管理视图) | 待实现 |
| 质量工程 | 模拟人测试常态化(4 类角色 26 项检查);真实历史回放(已做 4 年 / 11,914 条);规则由资深销售校准 | 持续 |