完整实现了一个基于 Spring Boot + OpenAI API 的自托管客服 Widget,支持一键嵌入网站、完全私有化部署、无月费。
如今似乎每个新的 SaaS 都在嵌入 ChatGPT。
大多数 AI 客服解决方案依赖第三方平台、月费订阅和厂商锁定。这些产品确实很出色,但我想要一些不同的东西。
我想要完全的所有权。
我想把一切都部署在自己的服务器上,使用自己的 OpenAI API Key,自定义体验的每一个细节,通过一个 script 标签就能把 widget 嵌入任何网站。
于是我用 Spring Boot 和 Vanilla JavaScript 构建了自己的自托管 AI 客服 widget。
在构建小型产品和网站时,我意识到客户服务很快就会成为一个问题。
用户会有关于定价、功能、退货的问题,或者simply get stuck。
大多数开发者通过集成 Intercom、Crisp 或 Tidio 这类服务来解决这个问题。
这些平台非常优秀,但同时也意味着:
每月订阅费用 厂商锁定 客户对话存储在第三方平台上 有限的定制能力 又一个外部依赖
我想要一个开发者能完全拥有的解决方案。
构建一个 AI 驱动的客服 widget,开发者可以部署在自己的服务器上,不到一分钟就能集成到任何网站中。
用 AI 回答客户问题 从自定义知识库中学习 匹配公司品牌 存储对话历史 支持人工交接 易于部署 只需一个 script 标签即可嵌入
Java 17 Spring Boot 3 Spring Security Spring Data JPA Thymeleaf Vanilla JavaScript H2 Database(支持 MySQL) OpenAI API
整体架构有意保持简洁。
Visitor ▼
AI Chat Widget(Vanilla JavaScript) ▼
Spring Boot REST API ▼
OpenAI API ▼
Database(H2 / MySQL)
保持前端无框架化使得 widget 轻量且易于嵌入几乎任何网站。
将 widget 添加到网站只需一个 script。
<script src="/widget/widget.js" data-api-base=""></script>
不需要 React。
该项目包含:
✅ AI 驱动的客户服务 ✅ Spring Boot 后端 ✅ 安全的管理员认证 ✅ 自定义知识库 ✅ 对话历史 ✅ 品牌定制 ✅ 带邮件通知的人工交接 ✅ OpenAI API 配置 ✅ H2 支持及 MySQL 生产配置 ✅ 一行代码网站集成
管理员可以从仪表板配置一切,而不必在应用内硬编码提示词。
公司名称 问候语 品牌颜色 OpenAI API key 知识库 通知邮箱
修改立即生效,无需重启应用。
一个有趣的设计决策是刻意没有实现 Retrieval-Augmented Generation(RAG)。
相反,管理员维护一个简单的知识库,包含在 AI 的 system prompt 中。
对于中小型企业来说,这种方式保持了部署的极简性,同时仍然能提供准确的回答。
如果项目增长,之后添加向量搜索也非常直接。
有时候简单才是更好的工程决策。
AI 不能回答所有问题。
当访问者需要人工帮助时,他们可以提交自己的邮箱。
将线索存入数据库 发送邮件通知(如果配置了 SMTP) 让管理员手动继续对话
这确保了用户永远不会走到死胡同。
构建 OpenAI 集成实际上并不是最难的部分。
真正的工程挑战是:
设计灵活的架构 认证和授权 对话持久化 提示词管理 使 widget 独立于框架 创建非开发者也能使用的管理员体验
这些部分最终比简单地调用 AI API 有趣得多。
每个项目都需要边界。
我刻意跳过了:
多租户 Stripe 订阅 向量数据库 多 AI 提供商 复杂的 AI 编排
目标是构建一个清晰、可理解的代码库,开发者可以快速部署并按自己的方式扩展。
我正在考虑添加:
流式 AI 响应 多 AI 提供商 RAG 支持 文件上传 对话分析 多租户架构
这个项目让我意识到,构建 AI 产品不仅仅是连接到 LLM。
真正的工程发生在它周围:
认证 配置 部署 可用性 持久化 开发者体验
这些才是把一个 API 调用转化为真正产品的部分。
我很想听听你是如何用 Java 或 Spring Boot 构建 AI 应用的,以及你会为自托管客服 widget 添加哪些功能。
我把这个做成了一个完整的、生产就绪的 Spring Boot 项目。如果你想要完整的源代码、设置指南和部署说明,可以在这里找到:
👉(https://swarnalata25.gumroad.com/l/supportai-springboot)
我还在构建更多自托管的 Java & Spring Boot 产品,所以反馈和建议始终欢迎。