本件回答四件事:后端到底选 A 还是 B、Dify / Chatwoot / EspoCRM 在架构里到底站哪、 被严重低估的供给侧资源采集与 AI 初对接子系统(SAE)如何落地, 以及你已有的AI 企业服务能力(外链→内链)如何成为 BizLink 的冷启动引擎——含合规红线与成本量级。
四句话:后端锁方案 A;Dify 进架构但只能做 AI 层,且有一条许可证红线; 爬虫+AI 不是一个后台功能,它是一个独立子系统(SAE),需要单独排期; 采集能自动化,但"拿到电话并打过去"这一步受严格监管,自动化空间比你想的小得多。
| 你的质疑 | 判断 | 我的回应 |
|---|---|---|
| "为什么没有用 Dify?" | 成立 | 这是我的疏漏。主文档把 AI 写成"LLM 网关 + 多模型抽象",只解决了"调哪个模型", 没解决"AI 逻辑谁编排、谁迭代、谁运营"。这一层就是 Dify 的位置,已在 03 节补上。 但我核实后发现一条你会踩的许可证条款,必须先看。 |
| "后端方案 A 还是 B 不定" | 可定 | 主文档给了两个方案却说"我倾向 A",这是我的表述不负责——选型不是让你猜我的心思。 01 节给一个 if/else 决策表 + 触发切换的明确条件,你按自己团队现状一分钟内能定。 |
| "AI 和爬虫作为后端技术支持不够" | 成立 | 完全成立。主文档只在技术架构图里给了 AI 与采集各一个框,没有流程、没有数据模型、没有质量闭环、没有成本模型。 这不是"加强一下"能解决的——04 节把它提升为独立子系统,按子系统规格重做。 |
| "必须做好和服务商的直接交互" | 要改设计 | 这一条我此前低估了。我原设计把服务商当"被调 API 的对象",错了。 真实情况是 90% 的服务商没有 API、不会为你开发,他们的数字化能力就是"一部手机 + 一个微信"。 05 节给了一套不依赖对方改造的直连方案(统一核销码协议)。 |
| "我本身做 AI 企业服务 (外链 → 内链)" 你的补充,见 08 节 |
改变策略 | 这条澄清修正了我 3.2 节的一个误判(我误以为"AI 企业服务"是让客户在平台上自助配 Agent)。 更重要的是:它解答了我在主文档里反复强调却没给答案的问题——冷启动的种子客户从哪来。 你已有的企业客户关系 + 深入企业内部的位置,正是 BizLink 最缺的东西。 冷启动策略因此从"先建平台再找客户"改为 "用已有客户定义平台第一批功能"。 |
把下面 5 个问题按实际情况打分,选 A 或 B 只需看第 1 条和第 4 条,其余是校验项。
| # | 判断条件 | 满足 → A | 满足 → B |
|---|---|---|---|
| 1 | 主导开发的人(含你自己)现在写得最快的是哪门语言? 这是决定性的一条,权重高于其他全部之和 |
JavaScript / TypeScript | Java |
| 2 | 团队规模与预期 | ≤ 8 人,公有云 SaaS 为主 | ≥ 10 人,或有大客户私有化交付 |
| 3 | 未来 12 个月最缺什么 | 缺功能上线速度 | 缺资深后端人手 |
| 4 | 是否需要给大客户做私有化交付(代码/系统装进甲方机房)? 甲方采购流程里"Java + Spring"常是隐性加分项,甚至写进招标文件 |
不需要 / 极少 | 是核心收入来源之一 |
| 5 | 是否已有可复用的 Java 中台/组件资产 | 没有 | 有完整一套 |
你担心选错后端。但把过去十年这类平台项目的失败原因排个序,语言选型进不了前五。 真正的杀手是下面三个,而它们和 A/B 无关:
| 真实风险 | 杀伤力 | 规避手段(与语言无关) |
|---|---|---|
| 状态机散落 | 高 | 5 条业务流程各自写 if/else 改状态,半年后没人知道一个订单到底有多少种中间态。 必须统一工作流引擎 + 状态机配置化(主文档 05 节已给出 JSON 定义)。这个做错,换什么语言都救不回来。 |
| 多租户漏过滤 | 高 | 一次漏 tenant_id 就是数据泄露事故。RLS + ORM 拦截器 + CI 卡口三重保险(主文档 04 节)。 |
| 外部依赖侵入业务代码 | 高 | 道旅/美团/停车厂商的接口直接写在订单服务里,接口一变全站改。 全部收口到 Adapter 层 + 人工兜底通道(主文档 03 节)。 |
结论:不要在 A/B 之间反复权衡,这是低价值决策。把精力放在上面三条上,它们的回报高一个数量级。
你说"业务线很长",这在工程上的正确解法不是换语言,是划清模块边界。给一条可执行的硬规则:
import 另一个模块的 internal/。
用 ESLint 的 no-restricted-imports 规则强制。做到这三条,即使你今天用"模块化单体"(A),将来业务真的大了要拆微服务或换语言重写某个模块, 都是可控的局部手术而不是推倒重来。这才是应对"业务线长"的正确姿势——用边界换未来的灵活性,而不是用语言。
你熟悉开源项目、倾向用开源降本——这个方向完全正确。但集成开源系统有个致命陷阱: 让业务状态住进了开源系统的数据库里。一旦如此,你的核心业务就被别人的数据模型绑架了, 将来想换掉它的成本等于重写业务。这一节就是划清"谁拥有什么数据"。
| 数据 | 唯一 Owner | 其他系统 | 说明 |
|---|---|---|---|
| 租户 / 用户 / 角色 | 自建 IAM | 只读订阅 | 多租户的根,绝不能交给开源系统管。所有系统通过 SSO 统一登录。 |
| 客户 / 学员 / 服务商主体 | 自建 CRM 域 | 同步过去 | EspoCRM 里可以有副本,但以自建为准,单向流出。改动必须回流审批。 |
| 活动 / 报名 / 摊位 / 订单 / 结算 | 自建核心域 | 不进开源系统 | 你的命脉。任何开源系统都只是"看",不能"写"。 |
| 客服会话 / 消息记录 | Chatwoot | 自建只读引用 | 会话天然属于客服系统,让它当 Owner。自建只存 conversation_id 用于跳转。 |
| 销售线索跟进过程 | EspoCRM | 自建触发创建 | 销售日常在 EspoCRM 里跑。但线索的来源与最终成交状态回写自建,否则你统计不出"SAE 采集 → 签约"的转化率。 |
| AI 应用 / Prompt / 知识库 | Dify | 自建调用 | Prompt 迭代是高频动作,放在 Dify 里让运营也能改,不要硬编码在后端。 |
某团队用 EspoCRM 当客户主数据,销售在 EspoCRM 里改客户信息。 后来要做"一个学员可属于多个租户"(你的场景就有),发现 EspoCRM 的数据模型不支持, 于是加自定义字段硬改 → 半年后 EspoCRM 升级,自定义字段冲突 → 业务停摆两周改回去。
教训:开源系统的价值在于"它擅长的工作流",不在于"它的数据模型刚好能装下你的业务"。 把业务语义留在自己手里。
| 系统 | 在你的架构里的角色 | 是否对外可见 | 集成方式与关键注意点 |
|---|---|---|---|
| Chatwoot 开源客服/IM |
统一客服与站内信。承接学员咨询、服务商咨询、客户工单。也是 SAE 里"AI 初对接"的人工接管端。 | 是嵌 widget | 用 SSO(OIDC)打通,用户免登。 关键动作:把自建的 tenant_id 写进 Chatwoot 的
custom_attributes,用它的 Teams + 自定义视图做租户级会话隔离——
但注意 Chatwoot 的隔离是"视图级"不是"数据级",客服能看到其他租户会话。
若客户对隐私要求高,需要二开或改用"每租户一个 Inbox + 严格权限组"。这一点要在 PoC 阶段验证,别等上线才发现。 |
| EspoCRM 你已在用 |
平台侧销售与渠道管理。管:业务员/代理商的线索池、服务商拓展跟进、商务谈判记录。 不用于客户的私域学员管理。 | 否仅内部 | 通过 REST API 双向同步: · 自建 → Espo:SAE 产出的服务商线索自动建 Lead · Espo → 自建:线索状态变更(已联系/已签约)回写,用于计算 SAE 转化率 坑:EspoCRM 的 API 是 ORM 风格,字段名会随实体定义变化,必须封装一层防腐层(ACL),不要在业务代码里直接拼字段名。 |
| Dify AI 应用编排 |
全部 AI 逻辑的编排与运行时。见 03 节详述。 | 否仅 API | 自建后端通过 POST /v1/workflows/run 调用,传 user 字段承载 tenant 标识用于审计。
绝不让终端用户直接接触 Dify 的界面或 API——既是许可证要求,也是安全要求。 |
| n8n (可选)集成胶水 |
低频、非核心的系统间集成:如每日同步报表到飞书、供应商账单邮件归档、监控告警转发。 | 否仅内部 | 建议一期先不上n8n 与 Dify 能力有重叠(n8n 有 1000+ 集成节点,Dify 强在 LLM/RAG)。
两者都上的团队通常的分工是:n8n 做触发器与系统连接,Dify 做 AI 推理,n8n 通过 HTTP 调 Dify。
但在你一期人手紧张时,两套编排系统是两套运维负担。先用代码写定时任务,等集成需求超过 10 条再引入 n8n。 注:n8n 采用 Sustainable Use License(fair-code),自托管内部使用免费, 但把它作为服务转售给客户需商业授权——与 Dify 的多租户条款是同一类问题,引入前先看清楚。 |
四个系统 + 自建后端,如果不做 SSO,用户要记 4 套密码、运营要在 4 处开账号—— 这套东西上线三个月就会被人绕过。做法:
主文档写的是"LLM 网关 + 多模型抽象",这只解决了"调哪个模型、限不限流、怎么降级"。 但你的业务里 AI 要做的是跨多步的逻辑——比如"拿到一条机构数据 → 判断它是不是连锁酒店 → 提取可承接的会议规模 → 生成一段首触话术 → 决定该派给哪个城市的业务员"。这是编排(Orchestration)问题,不是调用问题。 自己用 LangChain 写这套,代码量不大但迭代极痛苦:换个 Prompt 要发版、运营不能改、没有执行日志。Dify 解决的就是这一层。
我拉取了 github.com/langgenius/dify 的 LICENSE 原文(Modified Apache 2.0),附加条款第 1 条 a 款:
# 原文 1. Dify may be utilized commercially, including as a backend service for other applications or as an application development platform for enterprises. Should the conditions below be met, a commercial license must be obtained from the producer: a. Multi-tenant service: Unless explicitly authorized by Dify in writing, you may not use the Dify source code to operate a multi-tenant environment. - Tenant Definition: Within the context of Dify, one tenant corresponds to one workspace. The workspace provides a separated area for each tenant's data and configurations. b. LOGO and copyright information: In the process of using Dify's frontend, you may not remove or modify the LOGO or copyright information...
中文要点:未经 Dify 书面授权,不得用其源码运营"多租户环境"; 而条款明确定义 —— 一个 workspace(工作区)= 一个租户。
| 用法 | 判定 | 说明 |
|---|---|---|
| ① 全平台共用一个 workspace 所有租户的 AI 请求都打到同一个 Dify workspace, tenant_id 作为变量传入,不按客户开 workspace |
安全 | 这是你要走的路。条款约束的是"运营多租户环境",而你没有按租户切 workspace,
整个平台对 Dify 而言是"一个租户"。这也是绝大多数公司自托管 Dify 的用法。 配套动作:禁止终端用户访问 Dify 界面,全部通过后端 API 中转(同时也是安全最佳实践)。 |
| ② 给每个客户开一个 workspace 客户 A 一个空间、客户 B 一个空间, 甚至允许客户登录 Dify 自己配 Agent |
触发限制 | 这就是条款字面禁止的用法。如果你打算把"客户可自定义 AI Agent"作为产品卖点 (你的规划里有"AI 企业服务",要警惕这一点),必须提前与 LangGenius 谈商业授权。 不要等上线了再谈,那时议价权最低。 |
| ③ 修改 Dify 前端并对外提供服务 | 触发限制 | 条款 b 款禁止移除/修改前端 LOGO 与版权信息(注意:不使用其前端则不受此条限制)。 所以 方案①同时规避了 a 与 b 两条——你只调 API、不碰前端,两条都不触发。 |
business@dify.ai(或官网商务入口)发一封邮件,
简要说明你的业务形态与用法,争取书面确认。即使对方不回复,你也留下了"已主动确认"的记录——
这在将来有争议时非常重要。成本是一封邮件,收益是风险归零。AiCapability 接口,Dify 只是其中一个实现。
万一将来要换掉,改动只在一个 Adapter 内。这是应对任何开源依赖的正确姿势,不只针对 Dify。按优先级排序。前 4 个属于 SAE(见 04 节),是你现在最需要的;后几个按业务节奏后置。
| ID | 工作流 | 触发方式 | 输入 → 输出(结构化) |
|---|---|---|---|
| SAE-01 | 机构信息清洗与结构化 | 采集入库后异步 | 原始抓取文本 → {name, city, district, address, category, phone[], contact, capacity_hint, source_url},
并标记 confidence。低置信度转人工。 |
| SAE-02 | 能力打标与分级 | SAE-01 之后 | 机构档案 → {can_host_training, max_pax, has_catering, has_parking, price_band, tags[]}。
这一层优先用规则 + 关键词,AI 只处理规则判不出的部分(降本且可控)。 |
| SAE-03 | 合作意向初筛评分 | 批量(夜间) | 机构档案 + 你方需求 → {score 0-100, reason, recommended_approach}。
用于决定"值得打电话"还是"只发短信"。 |
| SAE-04 | 首触话术生成 | 运营点击生成时 | 机构档案 + 触达渠道 → 一段 80~150 字的个性化开场白(必须含身份明示与退订说明,见 06 节)。 输出后必须人工过一遍才能发送。 |
| CRM-01 | 客户咨询意图识别与分派 | Chatwoot 新会话 | 会话文本 → {intent, urgency, suggested_assignee, draft_reply}。
坐席看到 AI 草稿,确认后发送。 |
| OPS-01 | 异常订单诊断 | 订单异常事件 | 订单轨迹 + 供应商返回 → {root_cause_hint, suggested_action, need_human}。
典型场景:道旅下单超时、酒店满房、摊位超卖。 |
| MATCH-01 | 服务商 ↔ 需求匹配 | 活动创建时 | 活动需求(城市/人数/预算/日期)→ 候选服务商排序。一期用规则打分即可,AI 只做"补充说明为什么推荐"。 |
| CONTENT-01 | 课件结构化与摘要 | 后置 | 上传的 PDF/PPT → 章节结构 + 摘要 + 标签。服务于需求 1,但如前所述内容分发 API 受限,建议后置。 |
| REC-01 | 课程 / 项目推荐 | 后置 | 没有 1 万条以上真实行为数据之前不要做。冷启动期用规则推荐(同城、同行业、同价位),效果更可控也更省钱。 |
| 项目 | 参数与建议 |
|---|---|
| 最低配置 | 官方 Docker Compose 起步要求 2 核 CPU / 4 GB 内存。但这只是"能跑"。 |
| 建议生产配置 | 4 核 / 8~16 GB 独立 ECS 实例。Dify 是模块化多容器栈(web / api / worker / db / redis / vector / nginx / ssrf_proxy 等), 容器数量在 10 个量级,和你的业务后端挤在一台机器上会在高峰期互相拖垮。 |
| 向量库 | 一期用内置即可。若你后续已自建向量设施(含此前调研的 WeMM-Embedding 路线), 可通过外部向量库接入,但一期不建议为此增加复杂度。 |
| 调用方式 | POST /v1/workflows/run,response_mode 选 blocking(后端同步等待);
交互式场景(如客服)用 streaming。user 字段传 tenant_id:user_id 便于审计。 |
| 版本升级 | Dify 发布节奏很快(官方称已发布 160+ 版本)。这会成为真实运维负担: 建议锁定版本、每季度评估一次升级,不要跟随 latest。 |
| 成本量级 | 服务器 ¥200~500/月 量级(阿里云 ECS 4C8G,以实时官网报价为准); 模型推理成本极低——见 04.8 的测算,SAE 全量跑一遍 AI 打标的 token 成本在百元量级。 |
你说"'AI 和爬虫'作为后端技术支持不够"——这句话是对的,而且比你想的更对: 它根本不是后台的一个功能模块,它是一个有自己数据模型、自己的调度、自己的人工工作台、自己的合规边界的独立子系统。 本节按子系统规格重做。先给一个可能改变你想法的判断。
我核实了高德地图开放平台搜索 POI 2.0 官方文档(lbs.amap.com/api/webservice/guide/api-advanced/newpoisearch,
最后更新 2026-07-15),其中明确写着:
# 高德官方文档原文 目前搜索是不支持返回全量数据的,同请求参数翻页查询最多支持获取 200 条数据 (page_size 取值 1-25)
这意味着"把一个城市所有酒店/会场的电话都抓下来"在技术上就做不到——不是难,是接口层面直接卡死。
但这恰恰是好事。因为你的真实需求从来就不是全量:一个二线城市能承接 100 人以上培训会、且有餐饮住宿配套的场地, 撑死也就几十家。你需要的是头部供给的精准名录,不是工商登记里的几万条。 想清楚这一点,采集量级从"几十万条"降到"几万条",成本、工期、合规风险同时下降一个数量级。
| 维度 | 定义 |
|---|---|
| 一句话目标 | 把"找到某城市可合作的服务商并谈成协议"这件事,从纯人工变成 70% 机器做、30% 人做, 且全过程可量化、可预测、可交接。 |
| 输入 | 城市 + 服务商类别(场地 / 会展布置 / 视频拍摄 / 媒体传播 / 酒店 / 餐饮 / 停车)+ 可选的能力要求(人数、预算带) |
| 输出 | 不是"一堆数据",是一条「已核实、已触达、已确认意向」的服务商档案,可直接进入商务谈判环节。 |
| 成功的度量 | 不是"采集了多少条",而是 「单家服务商的获取成本(元)」 和 「从线索到签约的转化率(%)」。 只考核采集条数必然导致灌水数据。 |
| 明确不做 | 不做对外数据售卖、不做数据 API 对外输出。采集数据仅供本平台业务使用——这一点直接决定合规姿态(见 06 节)。 |
把你说的"自动抓取"拆开看,实际上是四类完全不同的数据源,混为一谈是设计失败的根源。
| 层 | 数据源 | 合规 | 成本量级 | 能拿到什么 / 关键限制 |
|---|---|---|---|---|
| L1 | 地图 POI API 高德 / 百度地图开放平台 Web 服务 API |
最稳 | 免费额度内 | 首选主力源 能拿到:名称、地址、经纬度、联系电话(需 show_fields=business 返回 tel 字段)、
营业时间、商圈、评分、人均消费、停车场类型(parking_type)、实景照片。限制:翻页上限 200 条/组合;须用「城市 + 类型码 + 多组关键词」定向召回,不能全量拉取。 配额:官方文档未在我核实页面明示个人/企业免费额度;第三方资料称个人约 5000 次/日、企业认证约 3 万次/日, 该数字为二手信息,请以开放平台控制台实时显示为准。 |
| L2 | 商业工商数据 API 企查查 / 天眼查 / 启信宝 |
稳 | 较贵 | 用于"核验"而非"采集"。企查查官方报价(openapi.qcc.com)示例:
企业模糊搜索 0.10 元/次(每次最多返回 5 条);企业信息核验 1.00 元/次(含联系信息、经纬度、企业规模等);
客户身份识别 3.00 元/次。价格以官网实时报价为准。正确用法:只对已进入商务谈判前的少数机构调用(见 4.8 的分层调用策略), 绝不要对全量名单调用,否则账单会失控。 |
| L3 | 自有沉淀 + 反向入驻 业务员录入 · 活动积累 · 服务商自助入驻 |
最稳 | 几乎为零 | 质量最高、被严重低估 · 每办完一场会,场地方的现场表现就是最真实的评分 · 做一个"服务商自助入驻"页面:地推时给二维码,对方自己填资料、传营业执照、选可承接的能力。 对方主动提交 = 天然授权,零合规风险,且信息准确率远高于抓取。 这一条我建议你一期就做——它比爬虫的 ROI 高得多。 |
| L4 | 公开网页抓取 机构官网 · 行业目录 · 公开黄页 |
有边界 | 低 但隐性成本高 |
只抓机构自己的官网(获取官方联系方式与业务介绍),不抓搜索引擎、不抓企查查/天眼查等数据平台。 为什么是这条红线——见 06 节那则判例,它与你的需求高度对标。 隐性成本:页面结构各异、反爬对抗、持续维护解析规则。投入产出比通常不如 L1 + L3。 |
拿名录与联系电话,免费额度内,立即可用
质量最高,对方主动提供,零合规风险
只做补充字段(官网、业务介绍),不做主力
仅谈判前核验资质与风险,控制调用量
注意这个配比里"爬虫(L4)只占 10%"。这和你原本的设想不同,但它更省钱、更快、更安全。
以下是 SAE 需要新增的核心表,与主文档 21 个实体的关系是:
supply_org 在服务商确认合作后升级为 ServiceProvider(主文档已有实体),
SAE 的实体位于它上游。
// ① 原始线索(只增不改不删,保留抓取现场) supply_lead { id, dedup_key(唯一索引), source(L1_MAP|L2_QCC|L3_SELF|L4_WEB), source_url, raw_json(jsonb), // 原始响应全量留存,争议追溯依据 fetched_at, job_id, status(NEW|PARSED|MERGED|REJECTED|DUPLICATE) } // ② 正式档案(SAE 的主产出) supply_org { id, name, alias, category(场地|会展布置|视频拍摄|媒体传播|酒店|餐饮|停车|其他), city_code, district, address, lng, lat, uscc(统一社会信用代码, 可空), poi_id(可空), website, intro, quality_score(0-100), confidence(0-1), verify_status(UNVERIFIED|AI_VERIFIED|HUMAN_VERIFIED|FIELD_VERIFIED), lifecycle(LEAD|CONTACTED|NEGOTIATING|SIGNED|COOPERATING|CHURNED), owner_agent_id, // 归属业务员/代理商 created_at, updated_at, last_verified_at } // ③ 联系人(一个机构多人,区分"公开座机"与"个人手机") supply_contact { id, org_id, name, title, phone_type(PUBLIC_LANDLINE|PUBLIC_MOBILE|PROVIDED_BY_SELF), // 合规关键字段 phone_encrypted, // 加密存储 consent_at, consent_channel, // 同意时间与来源:合规证据 is_primary, do_not_contact(bool), // 拒触达黑名单,写入即永久生效 source } // ④ 能力标签(决定能否被匹配到具体需求) supply_capability { id, org_id, cap_type(HOSTING|CATERING|PARKING|SHOOTING|LIVE|EXHIBITION), max_pax, min_pax, indoor_area_sqm, has_projector, has_stage, has_parking, parking_slots, price_band, currency, unit(DAY|SESSION|PERSON), valid_from, valid_to, verified_at } // ⑤ 触达任务与触达记录(每一次联系都必须留痕) outreach_task { id, org_id, channel, template_id, status, assignee_id, scheduled_at } outreach_attempt { id, task_id, channel(CALL|SMS|EMAIL|IM|VISIT), ai_generated(bool), human_approved_by, // AI 生成 + 谁批的,缺一不可 content_snapshot, sent_at, result(NO_ANSWER|REACHED|INTERESTED|REJECTED|INVALID_NUMBER), recording_url, do_not_contact_triggered(bool) }
phone_type:区分"企业公开座机"与"个人手机号"。两者的合规处理规则完全不同(见 06 节)。
不区分就无法做差异化合规策略。consent_at + consent_channel:记录"这个联系方式是怎么来的、对方是否主动提供"。
这是将来应对投诉时唯一的证据。没有它,你说不清数据来源。do_not_contact:只要对方表达过拒绝,立即置位且全平台永久生效(不因换业务员而重置)。
这既是合规硬性要求,也是避免重复骚扰的运营需要。把 AI 放进这条链路时,最大的错误是让 AI 从采集一路干到发送。正确做法是按"决策风险"切分, 不同环节给 AI 不同的权限。
| # | 环节 | AI 权限 | 说明 |
|---|---|---|---|
| 1 | 信息结构化 | 全自动 | 从原始文本抽字段。错了代价低(可人工改),且量大。适合 100% 自动化。 |
| 2 | 分类与能力打标 | 规则优先 | 先用规则/关键词/类型码判定,AI 只处理规则判不出的那部分(通常不足 30%)。 理由:规则可解释、零成本、零延迟;AI 全量跑既贵又慢还不可解释。这个设计能省下 70% 的 token。 |
| 3 | 合作意向初筛评分 | 全自动 | 输出 0~100 分与理由。只用于排序,不用于淘汰——低分的进"暂不触达"池,可随时捞回。 绝不能让 AI 直接删除数据。 |
| 4 | 真实性核验 | AI 不做 | 对方是否真实存在、电话是否打得通、报价是否属实——AI 无法验证,只能靠人或交叉数据源。 这是流水线里唯一必须 100% 人工的环节,也是防止"AI 幻觉导致你带着假名录去谈"的唯一闸门。 |
| 5 | 话术生成 | 生成 + 人工发送 | AI 生成 80~150 字个性化开场白,必须人工过目后发送。见 4.7 的合规约束。 |
| 6 | 谈判与成交 | AI 不做 | 涉及价格、账期、责任划分。一期坚决不做 AI 自动谈判。 |
举个具体例子:判断一家机构"能否承接 100 人以上培训"。
· 规则路径:高德 POI 类型码属于"会议展览/宾馆酒店"类 且 cost(人均)在阈值内 → 直接判定候选,0 成本、0 延迟、可解释;
· AI 路径:把机构简介丢给模型问"这家能承接百人培训吗" → 要钱、要等、判错了你也不知道为什么。
只有当规则判不出时(比如信息缺失、表述模糊)才调用 AI 兜底。这是把 AI 成本压到可忽略水平、同时保证可控的关键设计。
你说"AI 初步对接,然后运营人员确认"——这个界面设计得好不好,直接决定 SAE 是省人还是费人。 给一份具体的界面规格。
| 区域 | 内容与交互 |
|---|---|
| ① 待办队列 | 左侧列表,按 quality_score 降序 + 本城市本类别的缺口优先 排列。运营打开就看到"今天最该联系的 20 家", 而不是面对一个 5000 行的大表。队列来源:AI 评分 ≥ 70 且未触达。 |
| ② 机构卡片 | 中间区:名称、地址(带地图)、电话(点击即拨,走软电话或 Chatwoot)、AI 提取的能力标签、 多源信息对照(高德说有 200 个车位,官网说有 150 个 → 标红提示冲突,需人工确认)。 |
| ③ AI 建议区 | 显示 AI 给出的评分、理由、推荐话术。必须显示"依据"(引用了哪条原始信息), 否则运营无法判断该不该信——不显示依据的 AI 建议,运营三次之后就不会再看。 |
| ④ 三个按钮 | 采纳(进入触达)/ 修正后采纳(记录修正内容)/ 驳回(必填原因)。 修正与驳回的数据必须回流——它们是优化 AI 规则与 Prompt 的唯一素材。 |
| ⑤ 触达执行 | 一键拨号 + 通话结果下拉(未接/已联系/有意向/拒绝/空号)+ 备注。
选择"拒绝"自动置位 do_not_contact,全平台生效。 |
| ⑥ 我的效能 | 顶部小指标:今日已处理 / 通过率 / 转签约数。让运营看到自己的产出,也让你看到每个人的效率差异。 |
你希望"用 AI 和他们初步对接"。这一条我必须把话说清楚:技术上五个等级都能做, 但合规上只有前两级可以放心做。这不是保守,是因为国内对营销触达的监管近两年明显收紧。
| 级 | 形态 | 合规 | 建议 | 说明 |
|---|---|---|---|---|
| L0 | AI 只整理信息,不对外接触 | 安全 | 立即做 | 清洗、去重、分类、评分、生成内部摘要。不产生任何对外的触达行为,无合规风险。 |
| L1 | AI 生成话术,人工审核后发送/拨打 | 安全 | 一期主推 | AI 负责"说什么",人负责"按发送键"。省下的是运营写话术的时间(通常是整个环节耗时的 40%), 而每一次对外触达都有人为它负责。这是我推荐的一期形态。 |
| L2 | AI 自动发短信 / 邮件 | 有条件 | 二期 | 需满足:① 明示发送者真实身份与联系方式 ② 提供一键退订且立即生效 ③ 内容不得夸大。 短信通道本身也需通过正规服务商并做实名与签名报备。 |
| L3 | AI 语音外呼(机器人拨打) | 强监管 | 谨慎 | 见下方专述。核心结论:不要自建外呼系统对外呼出,应通过持牌服务商,且需取得对方同意。 |
| L4 | AI 自动谈判与议价 | 不建议 | 不做 | 涉及价格承诺与责任认定,一旦 AI 说错就是合同纠纷。至少三年内不碰。 |
以下要点来自多篇行业合规文章的归纳,多来源一致的部分我保留,口径不一致的明确标出:
我的建议:一期完全不做 AI 外呼。用 L1(AI 写话术 + 人打电话)。 等你有了真实签约数据、确认这条业务线跑得通,再评估是否值得投入资质与合规成本。 在商业模式未验证前就背上电信资质与外呼合规负担,是典型的本末倒置。
前提假设:每城每类用 4 组关键词 × 8 页(达到官方 200 条/组合上限),去重后总规模约 5000 家。 所有价格为量级估算,实际以各平台实时报价为准。
| 成本项 | 测算 | 金额量级 | 说明 |
|---|---|---|---|
| 地图 POI 数据 | 5×6×32 页 ≈ 960 次请求 (含重试约 1500 次) | ¥0 | 企业认证开发者日配额内即可覆盖,这是选它做主力源的核心原因。 |
| 工商核验(L2) | 仅对进入谈判的 Top 20% 1000 家 × ¥1.00 | ¥1,000 | 分层调用是关键:全量核验需 ¥5000,只对高价值机构核验降到 ¥1000。 |
| AI 打标与评分 | 5000 家 × ~1.1k token 规则过滤后约 30% 走 AI | ¥50~200 | 可忽略按国产模型公开价格量级估算。AI 不是成本项,人工才是。 |
| Dify 服务器 | 4C8G ECS × 1 台 | ¥200~500/月 | 独立部署,不与业务后端争资源。 |
| 人工核实大头 | 5000 家 ÷ 80 家/人日 ≈ 62 人日 ≈ 3 人月 | ¥15,000~25,000 | 这才是 SAE 真正的成本中心。按 ¥6~8k/人月估算。 |
| 合计(首轮 5 城铺开):约 ¥1.7 万 ~ 2.7 万 | 其中 数据与 AI 合计不到 8%,人工占 90% 以上。 | ||
| 阶段 | 做什么 | 验证什么(不达标就停) |
|---|---|---|
| W1 单城单类 | 只做 1 个城市 × 培训场地 这一类。采集 → 打标 → 人工核实 20 家 → 触达。 | AI 打标准确率 ≥ 70%(人工判定"AI 提取的字段基本正确"的比例)。 低于此说明 Prompt 或解析规则不行,先修再扩。 |
| W2 验证触达 | 对核实后的机构打电话,用 AI 生成的话术。 | 电话有效接通率 ≥ 40%、意向率 ≥ 10%。 接通率过低说明数据源质量不行(高德电话常有过期),需要换源或增加交叉验证。 |
| W3 加到 3 类 | 增加酒店、餐饮。 | 不同类别的字段模板是否复用;运营成本是否线性增长。 |
| M2 扩到 5 城 | 复制到其他城市,同时上线服务商自助入驻页。 | 自助入驻占比能否到 20%+(这个比例越高,你的采集成本越低、合规越稳)。 |
tel 字段存在过期、错配、是前台/总机而非业务负责人的情况——
这是所有 POI 数据的通病,不是高德的问题,换成任何数据源都一样。
所以"人工核实"这一步永远不可能被完全自动化,你只能压缩它的范围,不能消灭它。
任何声称能全自动拿到准确联系人并自动谈成的方案,都是在卖你一个幻觉。
你强调"必须做好和每个服务商直接的交互,比如停车场系统的二维码接入到我们的系统中"。 这一条我上一版设计错了——我默认服务商是"有 API 可被我调用的对方", 真实情况是 90% 的服务商没有 API、没有技术团队、也不会为你的平台做二次开发。 他们的数字化能力就是"一部手机 + 一个微信 + 一个收款码"。 按这个前提重新设计,结论完全不同。
| 级 | 服务商特征 | 占比估计 | 对接方式 | 说明 |
|---|---|---|---|---|
| L0 | 只有名录,未建立合作 | 最大 | 仅展示,不可下单 | SAE 采集来的大部分落在这里。用于"知道有这家",不作为履约依据。 |
| L1 | 已签协议、有价格,但无系统 | 绝大多数 | 统一核销码 + 人工通道 | 本节的主体。平台发码、对方扫码核销、按月对账。零技术对接成本,当天可上线。 |
| L2 | 有自己的小程序/收银系统,愿意配合 | 少数 | H5 核销页 + 对账导出 | 给对方一个"服务商端"H5 页面,扫码即核销,可导出对账单。仍不需要对方开发。 |
| L3 | 有开放 API 且愿意定制(连锁酒店、大型车场、道旅等聚合商) | 极少 | Adapter 直连 | 主文档的 SupplierAdapter 五方法接口。
只对单量大到"人工核销扛不住"的服务商才值得投入。 |
我核实了停车行业主流厂商的开放能力,结论和"接个 API 就行"的直觉差别很大。
| 路径 | 可行性 | 成本 | 核实到的事实与判断 |
|---|---|---|---|
| 路径 A 厂商 API 直连 捷顺 / 科拓 |
低 | 高 | 捷顺确有自己的开放平台(jsopen.jslife.com.cn),流程为
注册账号 → 企业认证 → 能力购买 → 应用开发测试 → 上线,需购买服务包、拿 appid/secret。但第三方评测指出该行业普遍"核心接口需付费定制、厂家二次开发,对接周期长、成本高"; 从公开的可用动作看,多为查询类(号码查车牌、查停车场信息、查车主信息), 未见公开的通用核销/分账接口。该评测为自媒体内容,建议以厂商官方接口清单为准。 判断:只适合你已锁定、单量极大的固定合作车场,一期不做。 |
| 路径 B 商家停车券 厂商领券接口 |
中 | 中 | 捷顺云开放平台宣传有"消费打折"能力(支持线上扫码领券、链接领券)。理论上可行,
但仍需逐个厂商、逐个车场谈,且不同厂商接口不通用——你有 50 个城市就是几十套对接。 判断:作为重点城市的优化项,不是通用解。 |
| 路径 C 平台自营核销码 推荐 |
高 | 极低 | 推荐默认方案
平台生成二维码 → 学员出示 → 停车场工作人员用平台提供的"服务商小程序"扫码核销 → 系统记账 → 按月对账结算。 优势:任何停车场都能用(哪怕是手写停车票的小型车场);当天上线;不依赖任何厂商; 核销记录自带时间、地点、核销人,争议可追溯。 代价:需要对方工作人员扫一下(这就是你说的半自动化,可接受)。 |
停车、餐饮、住宿、会场签到、甚至摊位入场——本质是同一件事:凭码履约 + 留痕 + 对账。 不要给每类服务各做一套,做一套统一的。
// 二维码内容(短链接,不要把业务信息明文写进码里) https://biz.link/v/A7X2K9QM // 服务端 voucher 记录 voucher { code: "A7X2K9QM", // 8-12 位随机短码,服务端生成,不可预测 voucher_type: PARKING | CATERING | ROOM | VENUE | BOOTH, tenant_id, // 归属客户(多租户隔离) activity_id, // 关联活动 provider_id, // 服务商 sub_order_id, // 关联子单 status: ISSUED | USED | VOID | EXPIRED | SETTLED, valid_from, valid_to, // 时效窗口(防止转卖/隔天使用) max_redeem: 1, // 一码一次,防重复使用 geo_fence: {lng, lat, radius_m}, // 可选:核销地理围栏,防异地扫码 settlement_price_minor, currency, // 结算价(最小货币单位整数) redeemed_at, redeemed_by, redeemed_geo // 核销留痕 }
你说"合作的酒店信息也要保存到我们的系统中"。这里有个容易混淆的点,必须先分清两类完全不同的酒店数据:
| 类别 | 来源 | 存什么 | 用途与注意 |
|---|---|---|---|
| ① 可预订库存 | 道旅 Content API (离线同步) | 酒店静态信息、房型、图片、设施、城市 | 用于搜索与比价。每晚离线同步入本地库(hotel/list 限频极低,
绝不能放在用户请求链路里——道旅接入指南已详述)。这不是你的资产,随时可换供应商。 |
| ② 协议资产 真正值钱的 | 业务员签约 SAE 采集 酒店自助入驻 |
协议价、账期、结算方式、联系人、可售房型、保留房规则、违约责任 | 这才是你平台的护城河。存在自建的 hotel_asset 表,与道旅数据用
hotel_key(城市+名称+地址 hash 或手动映射)关联。下单时的优先级逻辑:有协议价 → 走协议(利润高)→ 无协议或协议房售罄 → 走道旅兜底。 |
| 环节 | 做法 |
|---|---|
| 自动汇总 | 每月 1 日按服务商维度汇总上月 USED 状态的 voucher,生成对账单草稿。 |
| 服务商确认 | 服务商在小程序端查看明细、可逐条提出异议(如"这笔我没收到")。 异议会带上原始核销记录(时间/GPS/核销人)作为证据。 |
| 差异处理 | 差异项进入人工工单,业务员介入。不允许系统自动抹平差异——对账差异往往暴露流程漏洞, 抹平了就永远发现不了。 |
| 结算 | 确认后走付款流程。注意:若涉及预收学员款项再代付服务商,需确认资金存管合规要求 (主文档第 12 节的待确认问题之一)。 |
公开可查的刑事判例 (2019)闽0524刑初397号(范某某、徐某某、李某某等侵犯公民个人信息罪案):
# 判决要点(据公开法理评述整理) 徐某某通过"爬虫"软件从"企查查""天眼查"等网站上获取 企业法定代表人的联系方式等信息 414,994 条, 整理成 excel 表格后出售给范某某,获利 12,420 元。 → 法院认定:属于非法获取公民个人信息予以出售获利, 构成侵犯公民个人信息罪,且属情节特别严重。
法理评述中一个你必须注意的推论:这些联系方式在企查查/天眼查上是"已合法公开"的个人信息, 按《个人信息保护法》第 13 条,收集已合法公开的信息原则上无需再次取得同意—— 但本案仍被认定构成犯罪,主流观点认为原因是"利用爬虫大量收集超出了合理的收集范围"。
这条界限目前司法实践中仍较模糊。而你的需求——"抓取每个城市机构的信息和对接电话、联系人"—— 正好落在模糊地带里。刑责与"已公开"之间只隔着一个"合理范围"的认定。
| # | 红线 | 具体边界 |
|---|---|---|
| 1 | 不抓数据平台 | 不抓企查查、天眼查、启信宝、爱企查等任何商业数据平台。 要它们的工商数据就买 API(企查查企业信息核验 1.00 元/次量级)。 这是在拿确定的法律风险换不确定的省钱——不划算,且完全没必要。 |
| 2 | 不批量抓个人手机号 | 只采集企业公开的对外联系座机/客服电话(如地图 POI 的 tel、官网页脚电话);
不采集法定代表人、高管、业务员的个人手机号。数据模型中 phone_type 字段就是为了强制区分这两类——
个人手机号只有在对方主动提供(PROVIDED_BY_SELF)时才可入库。 |
| 3 | 不绕过反爬 / 不大量抓取 | 不使用代理 IP 池、不打码平台、不逆向接口、不伪造 UA 绕过限制;
遵守 robots.txt;单域名低频(建议 ≤ 1 QPS 并加随机抖动);
只抓机构自己的官网,不抓搜索引擎结果页。 同时注意地图平台服务协议通常也限制"超出服务目的的大规模数据获取", 建议签约前让法务核对高德/百度开放平台开发者协议的具体条款 (我未逐条核对到官方原文,不能替你确认)。 |
source / source_url / fetched_at / raw_json。
将来有人质疑"你哪来的我的电话",你能拿出证据说明来源合法、时间明确。do_not_contact 一旦置位全平台永久生效,
且不因换业务员、换批次而重置。consent_at。| 主文档位置 | 动作 | 修订内容 |
|---|---|---|
| 03 技术架构图 | 新增 | 在"应用服务层"与"AI 能力层"之间补 Dify 编排层(单 workspace),并标注"AI 只推理不写入"的边界。 |
| 03 技术架构图 | 新增 | 补 SAE 子系统(采集调度 / 线索池 / AI 打标 / 运营工作台)作为一个独立的支撑域, 不是"后台的一个功能"。 |
| 03.1 架构决策表 | 补充 | "AI 接入方式"一行从"LLM 网关 + 多模型抽象"扩展为 "LLM 网关 + 编排层(Dify)+ 防腐层(AiCapability 接口)"。 |
| 03.2 技术栈选型 | 确认 | 结论从"倾向方案 A"改为 "锁定方案 A(NestJS),附三条切换条件"(见本文 1.2)。 |
| 04 多租户设计 | 新增 | 补充规则:SAE 采集数据属平台侧资产(不属任何租户), 但一旦某服务商被某租户的活动使用,产生的业务数据归属该租户。 防止"A 客户发展的场地商信息被 B 客户看到"。 |
| 05 业务流程状态机 | 新增 | 补两条子流程状态机:① 服务商生命周期(LEAD→CONTACTED→NEGOTIATING→SIGNED→COOPERATING→CHURNED) ② 核销码生命周期(ISSUED→USED/VOID/EXPIRED→SETTLED)。 |
| 06 数据模型 | 新增 | 补 6 张表:supply_lead / supply_org / supply_contact / supply_capability / outreach_task / outreach_attempt
及 1 张 voucher 表(见本文 4.4、5.3)。 |
| 09 风险清单 | 新增高风险 | 新增三条:① 数据采集合规风险(判例已存) ② Dify 多租户许可证风险 ③ AI 外呼资质风险。 |
| # | 问题 | 我的建议 |
|---|---|---|
| 1 | 团队主力开发语言是 TS 还是 Java? 决定后端方案最终落定 |
按 1.2 的决策表对号入座。如果是你一个人主导起步,就选你写得最快的那个—— 不要为了"将来招人方便"牺牲当下的开发速度,那是以确定的损失换不确定的收益。 |
| 2 | 是否同意给 Dify 官方去函确认授权? | 建议同意成本是一封邮件,收益是把许可证风险从"灰色"变成"有据可查"。 同时严格执行"单 workspace + 纯 API 调用"。 |
| 3 | 接受"AI 写话术 + 人打电话"(L1),暂不做 AI 自动外呼吗? | 强烈建议接受自建外呼需要 B24 资质与一整套合规体系, 在商业模式验证前投入这些是巨大的浪费。等业务跑通、单量上来再评估。 |
| 4 | 地图数据源选高德还是百度,还是双源交叉? | 建议高德为主(本文核实的是高德文档,字段含 tel 与 parking_type,
对你的场景更对口)。重点城市可加百度做交叉验证,用于提高电话准确率——
这是解决"电话过期"最省事的手段。 |
| 5 | 服务商自助入驻页面是否一期就做? | 建议做开发量很小(一个表单 + 审核流), 但它是唯一零合规风险且数据质量最高的采集渠道,ROI 高于任何爬虫。 |
| 6 | 摊位费/培训费是否涉及预收资金? 沿用主文档第 12 节 |
涉及就有资金存管合规要求。这个问题会改变结算模块的架构,必须在开发前确认。 |
tel 字段返回情况与配额。这一版我改了三处上一版的判断,都记在这里,方便你核对我的思路变化:
你补充说明:"我本身就是做技术的,AI 对企业的服务能力,比如企业网站重构成 AI 基因、 企业 AI 辅助办公,通过外链完成对企业的内链后对企业客户完成服务和支持。"
据此修正 3.2 节的表述:我在 3.2 节提醒"若把客户可自定义 AI Agent 作为卖点会触发 Dify 多租户红线"。 你的澄清说明这个担心前提不成立——你说的"AI 企业服务"是你交付给企业的服务, 不是"客户在你的平台上自助配置 Agent"。这两者在许可证上的定性完全不同。修正后的判定见 8.5。
主文档和本文反复强调:这个项目最大的风险不是技术,是供给侧冷启动—— 会小二做到 9 万家深度合作场地用了约 10 年;没有种子客户、没有服务商,平台就是空转。
而你现在手里其实已经有三样东西:
你服务过的企业,已经建立了信任与付费习惯。 这比冷启动陌生客户便宜一个数量级。
"内链"意味着你已经在客户的业务流程里。 你知道他们缺什么、在找什么、预算在哪——这是任何外部平台拿不到的信息位。
BizLink 对你不是"从零学做平台", 而是把已有能力的上游延伸。开发成本对外部团队是百万级,对你是人力时间。
这一条我认为是你手里最有价值、且竞品买不到的东西。
| 数据源 | 它能告诉你什么 | 对 BizLink 的用途 |
|---|---|---|
| 企业官网 AI 客服的访客提问 | 真实客户在问什么、关心什么、卡在哪。这是未经修饰的需求原声, 比任何问卷都真实。 | 发现培训需求:若 30 家企业网站的访客都在问"怎么做短视频/怎么做外贸", 这就是一场培训会的选题依据,而且你知道它一定有市场。 |
| 企业内部的 AI 提问 | 员工在处理什么业务、缺什么能力、流程卡点在哪。 | 定制课程与项目资源:直接对应你的需求 2(培训)与需求 3(项目资源链接)。 |
| 跨企业的横向聚合 | 单个企业的样本少,但几十家企业的聚合能看出行业趋势。 | 这是你做"内容推荐"唯一的真实数据源—— 比主文档里说的"需要 1 万单"更早就能起步,因为你不只有交易数据,还有咨询数据。 |
| 风险 | 严重度 | 说明与规避 |
|---|---|---|
| ① 变成项目制外包公司 | 最高 | 这是这类公司最常见的死法。每家企业的 AI 官网都要单独定制 → 人力线性增长 →
你从"做平台的人"变成"接项目的老板",而项目制收入不 scalable、没有复利、也融不到资。 规避:L1/L2 必须做成标准化 SaaS + 配置化(模板 + 企业知识库 + 品牌配置), 定制部分严格限制在"配置"层面。判断标准:新增一个客户的边际交付工时是否趋近于零。 如果不能,就说明你在做外包。 |
| ② 外链→内链的转化率未验证 | 中高 | "做了官网 AI 化,客户就会买 AI 办公"——这是个假设,不是事实。
很多企业买完官网项目就结束了,市场部和 IT/老板之间隔着很长的距离。 规避:现在就去统计你已有客户里,从 L1 转化到 L2 的比例是多少。 这个数字直接决定这条路径值不值得作为 BizLink 的冷启动引擎。 如果转化率低于 20%,说明渗透不成立,冷启动要另想办法。 |
| ③ 三块业务互相拖累 | 中 | L1/L2 是现金牛和客户关系来源,L3 是未来但需要大量投入。
最危险的是 L3 把 L1/L2 的现金流抽干。 规避:给 L3 设一个明确的止损线(比如"12 个月内未跑通 3 场真实活动就暂停"), 并且 L3 的开发优先复用 L1/L2 已有的基础设施(IAM、租户模型、AI 层)。 |
这是本节最重要的工程结论,也是 3.2 节许可证讨论的延伸。 一旦你要给多家企业交付 AI 产品,Dify 的多租户条款就会从"理论风险"变成"实际要处理的问题"。
| 场景 | 能否用 Dify | 建议与理由 |
|---|---|---|
| 内部运营 AI SAE 打标、异常诊断、客服草稿 |
可以 | 全公司共用一个 workspace,终端用户接触不到 Dify。 这是 Dify 最安全的用法,也是我建议它承担的全部职责。 |
| 对客 AI 产品 AI 官网、AI 办公 |
建议自建 | 四个理由,任何一个单独成立都足够: ① 白标需求:你交付给企业的产品不可能带着 Dify 的品牌与界面,只能全自建 UI(而定制前端本身也触碰条款 b); ② 租户隔离:每家企业需要独立的知识库与配置,这在实质上就是多租户供给, 即使你技术上用单 workspace + 标签隔离,性质上仍与条款精神相悖; ③ 成本:这块要自建的东西(RAG 检索、对话管理、知识库)本身并不复杂, 为了省这点开发量背一个许可证风险,不划算; ④ 可控性:对客产品要做 SLA、计费、审计,自建比改造别人的系统简单得多。 |
AiCapability 抽象接口统一(见 3.3 图 2),
将来无论哪一侧要换实现,改动都被限制在 Adapter 内。
// 不需要重,核心只有四块 1. 知识库与检索:PostgreSQL + pgvector(与主库同实例,省运维) 文档 → 切片 → embedding → 检索 + rerank // 与你此前调研的向量/Embedding 路线可直接对接 2. 对话与会话管理:自建(对话历史、上下文窗口、引用溯源) // 比 Dify 简单,因为你不需要通用的编排能力 3. 租户与配额:复用 BizLink 的 IAM + tenant_id // 这是复用价值最大的一块,别重写 4. 嵌入与交付:一个 JS widget(官网挂一段代码即可)+ 一个后台 H5 // 决定交付成本的关键:做到"挂代码即用",不做定制
这四块对一个有 20 年经验的工程师是几周的工作量,不是几个月。 真正的难点不在技术,在于把它做成不需要定制的产品——对应 8.4 的风险①。