发布时间:2026/8/11 1:30:49
从 0 到 1 打造端到端 AI 销售智能体:Spring Boot 4 + Spring AI 2.0 全栈实战复盘(含登录统计曲线图、HTTPS 上线) 一个AI 智能获客助手的真实落地过程潜客挖掘 → 个性化触达 → 转化 → 数据复盘的全链路自动化以及踩过的坑、做过的取舍。一、为什么要做这件事做 B2B 销售的朋友都有体会获客难、触达累、转化靠玄学。潜客数据要手动去查、去整理渠道杂、质量参差不齐一封邮件要针对不同客户反复改写人工成本极高客户画像靠销售脑袋里的经验人走了经验就没了邮件发多了还容易踩反垃圾机制甚至违规被投诉系统上线后到底有多少人用、哪个阶段转化最好两眼一抹黑。所以我决定做一个端到端的 AI 销售智能体让 AI 去挖掘潜客、生成个性化沟通内容、自动发送并追踪把发现-触达-转化-复盘的完整业务闭环自动化同时把关键决策留给人来确认。项目的定位是本地部署 云端 AI混合模式——核心业务数据留在客户自己服务器上满足数据隐私诉求AI 推理走云端大模型 API降低使用门槛。二、整体架构┌─────────────┐ HTTPS(443/80) ┌──────────────────┐ /api/ 反向代理 ┌────────────────┐ │ 浏览器用户 │ ─────────────► │ Nginx (前端静态) │ ────────────────► │ Spring Boot │ └─────────────┘ └──────────────────┘ │ (后端 8080) │ └───────┬────────┘ │ JDBC ┌───────▼────────┐ │ PostgreSQL 16 │ └────────────────┘后端Spring Boot 4.1.0Java 21 Spring AI 2.0.0 PostgreSQL 16 Flyway前端React 18 Vite TypeScriptNginx 托管部署Docker Compose 一键起三个容器PostgreSQL 后端 前端数据库 19 个 Flyway 迁移脚本自动建表AI 模型兼容 OpenAI 协议的大模型DeepSeek 等模型、Key、Base URL 全部可在系统设置页动态配置生产腾讯云 SSL 证书 宿主机 Nginx TLS 终结HTTP 301 自动跳 HTTPS前端子路径/app/部署三、核心功能模块与实现细节1. License 授权体系本地软件的防盗版三板斧本地部署软件最大的痛点是盗版。我做了三层防护激活码离线签名签发厂商用独立的license-tool单文件 Java 程序生成 Ed25519 密钥对用私钥离线签发激活码客户系统内置公钥验签全程不需要连客户数据库也无法伪造激活码。硬件指纹绑定激活码与宿主机machine-id加盐哈希绑定防止一码多机。Docker 部署时把宿主机的/etc/machine-id只读挂载进容器。云端 API 强制校验 Token 配额核心 AI 功能强制走云端大模型 API即使软件被破解没有有效激活码拿不到 Token 配额也无法使用核心功能。激活码带token 上限 金额保险闸门防止异常消耗烧钱用量按激活码独立统计换新激活码从 0 起算。另外做了一个很实用的细节激活成功时自动重置管理员密码——用SecureRandom生成 12 位随机密码去易混淆字符 0/O/1/I/lBCrypt 哈希入库明文只在激活成功响应里显示一次支持前端隐藏/明文切换和一键拷贝。2. AI 能力中台Spring AI 2.0 的正确打开方式项目里所有 AI 能力邮件生成、回复分析、潜客挖掘统一走一个 AI 服务层实现动态构建 ChatModel模型 API Key、Base URL、模型名都存数据库敏感项 AES-256 加密落库运行时用OpenAiChatOptions.builder().apiKey(k).baseUrl(u).model(m).build()动态构建模型系统设置页改完立即生效无需重启。AI 用量统计每次调用按真实 token 数记账结合可调的单价自动算成本前端实时展示。接口限流 Prompt 模板管理防 API 超限Prompt 可维护。3. 潜客挖掘 RAG 客户画像让 AI 像销冠一样思考潜客挖掘配置数据源后通过Function Calling让大模型按结构调用外部数据 API 挖掘潜客人工确认后才入库按公司名去重。RAG 客户画像把历史成交客户通过 CSV 导入 → 自动向量化入库 → 新潜客入库时自动与画像库做语义检索算出profile_score0-100 相似度分并给出相似画像某公司行业相似度 N%的解读。潜客列表按画像分排序优先跟进最像老客户的新客户。这里有个关键选型DeepSeek没有 embedding API所以向量化做了双方案——方案实现特点本地 TF-IDF默认特征哈希映射到 768 维向量L2 归一化余弦相似度零外部依赖、离线可用远程 embeddingOpenAI 兼容端点OpenAiEmbeddingModel配置ai.embedding_model即启用一个EmbeddingRouter统一路由配置了远程模型就走远程否则本地兜底。向量统一存 JSON 文本{dim:768,data:[...]}维度不一致的余弦相似度按 0 处理。4. 邮件触达闭环从生成到发送到合规AI 个性化生成基于客户的沟通记录时间线跟进记录 已发邮件 客户回复续写邮件每次生成必须与历史邮件明显不同换措辞/句子结构/事实组合主题 ≤20 字且不与历史重复。HTML 邮件AI 生成简洁美观的 HTML仅内联样式禁外部 CSS/JS/图片发送时启发式检测 HTML 标签自动切换text/html或纯文本。占位符替换邮件模板支持{companyName}{contactName}{date}{year}等 13 个变量保存草稿时即按客户字段替换草稿箱里看到的就是真实投递内容空字段替换为空串未识别占位符原样保留。合规三件套响应 CAN-SPAM / 《个人信息保护法》邮件正文自动追加退订链接支持{email}占位符域名前缀自动补全路径公开的免登录退订接口点击即生效落库黑名单发送前黑名单拦截——已退订邮箱一律不再发送幂等、按邮箱维度隔离不影响其他客户。每日限频mail.daily_limit控制日发送上限避免触发平台反垃圾机制。5. 收件箱 微信工作台多触达渠道收件箱通过MCP Client 自连本服务/mcp端点按 cron默认每 5 分钟用 IMAP 拉取客户回复邮件支持已读标记、一键转跟进记录、AI 分析回复内容。微信工作台客户挂微信号/昵称消息 in/out 双向记录AI 生成回复建议、人工确认后才落库自动打上AI 辅助徽标——关键触达永远是人来把关。6. 工作台数据复盘登录统计 趋势曲线图产品上线后需要回答系统到底有没有人在用。我基于登录日志做了两层展示统计接口免登录GET /api/auth/login-stats返回{ totalLogins, todayLogins, todayUsers }登录页即可匿名看到「 系统累计登录 N 次 · 今日 N 次 · N 人登录」。趋势曲线图工作台GET /api/auth/login-trend?rangedaily|weekly|monthly|yearly按时间桶聚合login_logs表无数据桶自动补 0 保证曲线连续。前端零依赖 SVG 折线图网格线 折线 面积填充 数据点数值日/周/月/年一键切换range桶数粒度标签示例daily14每天07-28weekly12每周一为一周05-25monthly12每月2026-08yearly5每年20267. MCPModel Context Protocol实践后端通过 Spring AI 的 MCP Server 能力暴露Streamable HTTP/mcp端点McpTool注解的工具如邮件发送自动注册同时自己作为 MCP Client 自连端点调用自己的工具。这套服务即工具的模式让未来的 Agent 编排扩展非常方便。四、踩过的坑都是真金白银换来的Spring Boot 4.x 的版本号是纯数字4.1.0没有.RELEASE后缀。如果从 start.spring.io 生成的 pom 里带着4.1.0.RELEASEMaven Central 和阿里云都会 404——改成4.1.0即可。Spring Boot 4 中 web starter 改名了spring-boot-starter-web→spring-boot-starter-webmvc。Spring AI 2.0 没有OpenAiApi类了动态构建模型要用OpenAiChatOptions.builder()...build()→OpenAiChatModel.builder().options(opts).build()→ChatClient.builder(model).build()这条链路SDK 内部升级为com.openai.client.OpenAIClient。业务校验失败千万别返回 401前端会把任何 401 当成登录过期→ 清 token 跳登录页。改密失败、退订恢复失败这类业务校验一律用 400BadRequest401 只留给真正的未认证场景。DeepSeek 没有 embedding API做 RAG 前先确认模型商的能力边界本地 TF-IDF 兜底是最稳的退路。nginx 1.24 不支持http2 on;独立指令需 1.25.1必须用listen 443 ssl http2;旧语法备份文件不能留在sites-enabled/会被 include 加载导致 duplicate server 报错。前端部署在子路径/app/时静态资源必须用import.meta.env.BASE_URL前缀写死绝对路径会被外层 nginx try_files 回退成落地页 HTML造成HTTP 200 但图片裂图的诡异问题。E2E 测试要用 DOM 几何测量而非截图我用 PlaywrightgetBoundingClientRect()检查关键元素是否超出视口、按钮是否互相重叠、modal 内容是否溢出把界面变形这种回归彻底挡在发布前。五、部署一条命令上线cp .env.example .env # 填数据库密码、JWT 密钥、AES 加密密钥、AI Key docker compose up -d --build后端启动自动执行 Flyway 迁移19 个版本脚本健康检查通过即就绪。前端、后端、数据库三个容器互不干扰数据卷持久化。生产环境再加一层腾讯云 SSL 证书 → 宿主机 Nginx TLS 终结 →listen 443 ssl http2;→ HTTP 301 跳 HTTPS公网https://sales-agent.top无证书告警直接可用。证书到期续期只需替换/etc/nginx/certs/两个文件后nginx -s reload无需重启服务。六、关于产品本身说点实在的这套东西我已经做成了产品——AI 智能获客助手定位就是给中小 B2B 企业、跨境电商、SaaS 服务商这类持续需要获客的团队用✅本地部署客户数据留在自己服务器不碰隐私红线✅AI 个性化触达邮件/微信内容由 AI 按客户画像与沟通历史生成不千篇一律✅合规内置退订链接、频控、黑名单拦截从机制上规避反垃圾与法律风险✅关键动作人确认AI 是助手不是自动群发机器人首次触达人工把关✅数据复盘登录趋势、邮件打开率、AI 用量成本一目了然✅买断 订阅双模式基础版买断、专业版订阅Token 充值、企业版私有化定制如果你也在做 B2B 获客或者对本地部署 云端 AI这类产品形态感兴趣欢迎一起交流。联系方式/链接

相关新闻

2026/8/11 1:30:49

现代网络安全防护体系:从三位一体到实战策略

1. 网络安全新形势:从防病毒到三位一体防护十年前提起网络安全,大多数人第一反应就是"装个杀毒软件"。但如今网络安全早已不是简单的病毒查杀,而是演变为覆盖保密性、完整性和可用性的三位一体防护体系。我从事企业安全建设八年&am…

2026/8/11 1:30:49

嵌入式 Linux 巡检开发短记:启动链路怎么核对

嵌入式 Linux 巡检开发短记:启动链路怎么核对 嵌入式 Linux 的巡检不应照搬服务器清单。重点是启动链路、存储寿命、时间同步和业务进程是否仍处在预期状态。 每次启动都能自证 采集内核版本、设备树标识、根文件系统挂载方式、启动槽位和应用版本,并把它…

2026/8/11 1:30:49

XZ6105A特别适合大功率、多个高亮度LED灯串的恒流驱动

概述 这是一款高效率、高精度的升压型大功率LED灯恒流驱动芯片。 内置高精度误差放大器,恒流驱动电路等,特别适合大功率、多个高亮度LED 灯串的恒流驱动。 其工作频率最高可达350KHz,可使外部电感和滤波电容体积减小,效率提高&…

2026/8/11 2:45:55

从电子书到有声书:零代码实现1158种语言语音合成

从电子书到有声书:零代码实现1158种语言语音合成 【免费下载链接】ebook2audiobook Generate audiobooks from e-books, voice cloning & 1158 languages! 项目地址: https://gitcode.com/GitHub_Trending/eb/ebook2audiobook 你是否曾梦想将心爱的电子书…

2026/8/11 2:45:55

二叉树路径总和III问题解析与优化解法

1. 路径总和III问题解析在二叉树问题中,路径总和III是一个经典的中等难度题目。题目要求我们找出二叉树中路径和等于给定数值的路径数量,这里的路径不需要从根节点开始,也不需要在叶子节点结束,但必须保证路径方向是向下的&#x…

2026/8/11 2:45:55

Linux磁盘管理:从分区到挂载的完整指南

1. Linux磁盘管理核心概念解析在Linux系统中,磁盘管理是每个系统管理员必须掌握的硬核技能。不同于Windows系统的图形化操作,Linux环境下我们主要通过命令行工具完成磁盘的整个生命周期管理——从物理设备识别到最终挂载使用。这个过程涉及几个关键概念&…

2026/8/11 2:45:55

OBS Studio免费色彩校正终极指南:3步打造电影级直播画面

OBS Studio免费色彩校正终极指南:3步打造电影级直播画面 【免费下载链接】obs-studio OBS Studio - Free and open source software for live streaming and screen recording 项目地址: https://gitcode.com/GitHub_Trending/ob/obs-studio 你是否曾经看着专…

2026/8/11 2:40:55

网页转Markdown:用Playwright实现自动化内容抓取与结构化转换

1. 项目概述:告别低效复制,拥抱结构化内容作为一名长期与文档和代码打交道的内容创作者,我深知从网页上抓取信息并整理成可编辑格式的痛苦。你肯定也经历过:找到一个绝佳的教程、一篇深度分析文章,或者一个产品说明页面…

2026/8/9 0:01:56

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/10 5:09:58

当 LLM 遇见大文档:主流开源项目如何处理上下文超限

从 Agentic Loop 到 Repo Map,七种策略与六类陷阱引言:128K vs 10MB 的硬冲突 2026 年的 LLM 上下文窗口已达到 128K ~ 1M token(≈ 0.5MB ~ 4MB 文本),但 LLM 想要处理的真实数据规模远远超过这个量级:真实…

2026/8/11 0:00:39

前后端分离项目中控制台与接口工具数据差异排查指南

1. 问题现象解析:控制台与Apifox的数据差异 最近在调试一个前后端分离项目时,遇到了一个典型问题:后端服务在本地开发环境控制台能正常输出查询数据,但通过Apifox测试时却返回空结果。这种"控制台有数据,接口工具…

2026/8/11 0:00:39

AI编程实战:从Claude Code踩坑到游戏开发入门

1. 从“AI能帮我做游戏”到“AI让我重新学编程”最近身边不少朋友,尤其是一些非技术背景、但对游戏开发有浓厚兴趣的朋友,都在问我同一个问题:“听说现在用Claude Code这种AI编程工具,小白也能做游戏了,是真的吗&#…

2026/8/10 11:20:30

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/10 11:20:30

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/9 15:24:19

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…