宏浩飞宇云客智能客服系统
面向电商、连锁门店与 SaaS 服务商。Netty + STOMP 网关支撑实时会话,模型可接自有,知识库用 bge-m3 做向量检索,会话可一键转工单。
智能客服
系统按租户组织:每个租户的数据用 tenant_id 做行级隔离,平台超管管租户、配额与版本,商户管理员管自己的坐席、技能组和知识库,两套后台权限分开。
会话侧由 Netty + STOMP 网关承载长连接,消息按会话与租户路由,存储按月分区;坐席分配支持轮流、空闲优先、技能优先三种策略,可按租户和时段配置。
AI 侧把知识库文档切片后用 bge-m3 向量化,回答带命中来源;复杂问题一键转工单,按创建→分配→处理→关闭流转。
模型可换:默认用平台部署的 Ollama,也可以填商户自己的 OpenAI 兼容接口(OpenAI、DeepSeek、通义千问),API 地址、Key、模型名与温度都在商户后台改。
以上为界面示意,数值为演示数据。
这套系统要解决的,是三件具体的事。
咨询散在多个入口,接不住
官网、商品页、活动页各挂一个对话框,访客从哪来、聊到哪一步,没人统一看。
统一会话入口,按租户与渠道打标,访客进入时带上来源和商品上下文。
坐席分配靠喊
谁有空谁接,忙的人越来越忙,新人一直闲着,高峰期尤其明显。
技能组内三种策略:轮流、空闲优先、技能优先,按租户配置。
聊完就没了
会话记录只留在聊天窗口,同样的问题反复问,处理结果也没沉淀下来。
会话可转工单,走创建→分配→处理→关闭;知识库按命中情况补条目。
按功能分区,一条条能对上。
多租户行级隔离
每个租户的数据按 tenant_id 隔离,平台侧与商户侧权限分开,互不越界。
实时会话网关
Netty + STOMP 承载长连接,消息按会话与租户路由,断线可重连。
技能组与分配策略
轮流、空闲优先、技能优先三种策略,按租户与时段配置。
AI 知识库 RAG
文档切片后用 bge-m3 向量化,回答带命中来源,减少胡编。
会话转工单
一键建单,创建→分配→处理→关闭,处理结果回写会话。
平台 + 商户双后台
平台超管管租户与配额,商户管理员管坐席、技能组与知识库。
消息按月分区
会话消息按月分区存储,历史查询与归档成本可控。
部署与扩容
Docker Compose 一键起,chat-server 与 chat-ai 可按负载独立扩容。
移动端接待
uni-app 移动端可接会话与工单提醒,店员不在电脑前也能回。
模型自己选,知识库自己建。
AI 自动回复可随时开关,答不上来转人工;模型与知识库都在商户后台维护。
模型自己选
默认用平台部署的 Ollama,不额外买 Token;也可以填自己的 OpenAI 兼容接口:OpenAI、DeepSeek、通义千问。地址、Key、模型名、Token 上限与温度在商户后台改,切换不中断会话。
知识库自己建
按租户建知识库,文章入库后自动分块、用 bge-m3 转成向量;提问时检索 Top5 片段注入上下文,回复会标注是否引用了知识库。
AI 先答,人工兜底
AI 自动回复可开关;识别到订单、物流意图时先查该租户的订单与物流上下文再回答;答不上来或客户要求时转人工,按技能组分配。
这套系统用什么搭起来的。
选型不藏:下面这些是实际在用的框架、中间件与运行环境,交付时按同一份清单核对。
- Java 21运行时
- Spring Boot 3.4服务端框架
- Netty + STOMP长连接网关
- Redis会话与缓存
- RabbitMQ异步队列
- MySQL 8租户数据
- Vue 3坐席与商户后台
- Ollama + bge-m3本地模型与向量检索
- OpenAI 兼容接口可换外部模型
- Docker Compose / K8s部署形态
一条链路走完,责任留在链上。
接入与开通
按租户开通账号,配置技能组与知识库,前端嵌入会话入口。
会话进入与分配
访客进入后按技能组策略分配坐席,AI 先答一轮常见问题。
处理与转单
坐席接待,复杂问题一键转工单,按创建→分配→处理→关闭流转。
复盘与补充
按命中率与会话记录补知识库条目,报表按租户出。
三种落法,按客户环境选。
| 部署形态 | 适用环境 | 说明 |
|---|---|---|
| Docker Compose 单机 | 单商户或试点 | 网关、chat-server、chat-ai、MySQL、Redis、RabbitMQ 一套编排,适合先跑起来。 |
| 多租户共享集群 | SaaS 服务商 | 平台超管统一管租户,按租户配额与网关路由隔离,横向扩容 chat-server。 |
| 商户私有化 | 连锁与品牌方 | 单商户独立部署,数据留在自己服务器,平台侧只做版本与授权管理。 |