Smart AI Service:企业级 AI 智能客服平台技术解析
当「人工坐席成本上涨」遇上「7×24 服务刚需」,企业需要的不是又一个聊天机器人,而是一套能真正打电话、接来电、转人工、留固话、可审计的全链路客服基础设施。Smart AI Service 正是为此而生。
一、项目背景及简介
1.1 行业背景
传统呼叫中心面临三重压力:
人力成本:一线坐席招聘难、培训周期长、夜间与节假日排班成本陡增;
服务时效:用户习惯「即问即答」,排队等待直接转化为投诉与流失;
合规要求:通话录音留存、客户隐私脱敏、操作可追溯,已成为金融、政务、医疗等行业的硬性门槛。
与此同时,大模型与语音技术(ASR/TTS)的成熟,让「AI 先应答、复杂问题再转人工」成为可行路径。但多数开源方案停留在 Web 聊天或 Demo 拨号,缺少外呼任务引擎、电信网关适配、固话号码保留、RBAC 权限与合规审计等企业落地所需的全套能力。
1.2 项目简介
Smart AI Service(AI 智能客服系统)是一套面向企业客服场景的开源解决方案,采用Java Spring Boot 后端 + Vue3 管理后台架构,覆盖:
能力域 | 说明 |
|---|---|
智能外呼 | 模板变量播报、批量任务、全生命周期调度 |
AI 接听 | FAQ 知识库应答、语音回调处理、超范围自动转人工 |
线路管理 | 固话号码保留、多网关切换(MOCK / HTTP / 腾讯云 CCC) |
运营后台 | 仪表盘、导入导出、账号权限、审计日志 |
合规安全 | 手机号加密存储、PII 脱敏、录音访问控制 |
项目代码结构清晰,本地可零 Redis 启动调试,生产环境可按需接入 Redis 幂等、MinIO 录音归档与腾讯云联络中心,适合作为企业 AI 客服中台的技术底座或二次开发起点。
二、目标客户
Smart AI Service 面向以下典型客户群体:
客户类型 | 典型诉求 |
|---|---|
| 中小企业客服团队 | 用 AI 承接高频咨询,降低人工接听量;外呼通知、回访、催缴 |
| SaaS / 系统集成商 | 需要可私有化部署的客服模块,对接自有 CRM 或业务系统 |
| 政务 / 公共服务热线 | 7×24 政策咨询、办事指引,复杂事项转人工窗口 |
| 金融 / 保险 / 医疗 | 合规录音、敏感信息脱敏、操作审计、角色分级授权 |
| 电商 / 本地生活 | 订单状态外呼、售后 AI 初筛、满意度采集(DTMF) |
| 技术团队 / 架构师 | 希望参考「电信回调 + 任务引擎 + 合规层」的完整工程实践 |
不适合:仅需网页嵌入式 Chatbot、无需电话触达的场景;或对「开箱即用商用 SIP 中继」有强依赖且不愿对接云厂商的客户。
三、平台定位
3.1 一句话定位
「能打电话的 AI 客服中台」—— 外呼与接听一体,AI 与人工协同,合规与运营并重。
3.2 三层定位模型
┌─────────────────────────────────────────┐ │ 业务层:外呼通知 · AI 接听 · 转人工工单 │ ├─────────────────────────────────────────┤ │ 平台层:任务引擎 · 模板 · 知识库 · RBAC │ ├─────────────────────────────────────────┤ │ 接入层:MOCK · HTTP 网关 · 腾讯云 CCC │ └─────────────────────────────────────────┘不是单纯的 LLM 对话 Demo,而是带任务调度、通话归档、工单流转的业务系统;
不是绑死单一云厂商,网关抽象支持本地 MOCK 调试、HTTP 自定义对接、腾讯云 SDK 生产部署;
是可渐进式落地的工程化方案:开发期无 Redis/无 MinIO 也能跑通主流程,上线期按需打开分布式幂等与对象存储。
3.3 与常见方案的差异
维度 | 通用 Chatbot | 传统 IVR | Smart AI Service |
|---|---|---|---|
触达方式 | 网页/App | 按键菜单 | 外呼 + 智能语音 + 转人工 |
批量外呼 | ❌ | 有限 | ✅ 任务引擎 + 重试补偿 |
固话保留 | — | ✅ | ✅ 线路配置独立管理 |
合规审计 | 弱 | 中等 | ✅ 审计日志 + 加密脱敏 |
私有化 | 视厂商 | 昂贵 | ✅ 开源可部署 |
四、平台技术
4.1 技术栈总览
层级 | 技术选型 | 说明 |
|---|---|---|
后端框架 | Java 17 + Spring Boot 3 | REST API、JPA、Security、Scheduling |
持久化 | MySQL 8 | 11 张核心业务表,schema + seed 脚本开箱即用 |
缓存/幂等 | Redis(可选) | app.redis.enabled开关,关闭时用内存 Noop 实现 |
管理前端 | Vue 3 + Element Plus + Vite | 主流后台布局:侧栏 + 顶栏 + 内容区 |
对象存储 | MinIO / S3 兼容 | 录音远程 URL 拉取后持久化归档 |
语音能力 | 外部 ASR/TTS HTTP | 解耦供应商,配置 URL + Token 即可 |
电话网关 | MOCK / HTTP_GATEWAY / TENCENT_CCC | 策略模式,运行时切换 providerType |
云集成 | 腾讯云 Java SDK 3.0 | CommonClient 泛化调用 + 回调字段映射 |
4.2 架构示意
flowchart LR subgraph Admin["管理端 Vue3"] A1[仪表盘] --> A2[外呼任务] A2 --> A3[AI客服/工单] A3 --> A4[导入导出] end subgraph Backend["Spring Boot API"] B1[OutboundTaskService] B2[AiQaService] B3[TelephonyGatewayService] B4[CallArchiveService] B5[IdempotencyService] end subgraph Infra["基础设施"] MySQL[(MySQL)] Redis[(Redis 可选)] MinIO[(MinIO 可选)] end subgraph Telephony["电信/云"] GW[HTTP Gateway] CCC[腾讯云 CCC] end Admin --> Backend Backend --> MySQL Backend --> Redis Backend --> MinIO B3 --> GW B3 --> CCC CCC -->|回调| B44.3 关键工程设计
(1)Redis 可选 —— 降低本地开发门槛
app: redis: enabled: false # false:幂等/去重走 NoopIdempotencyService management: health: redis: enabled: false # 健康检查不依赖 Redis生产环境将app.redis.enabled设为true,外呼幂等与电信回调事件去重走 Redis,避免重复处理。
(2)电信回调双通道
标准回调:
POST /api/telephony/callback(HMAC 验签 + Event-Id 幂等)腾讯原始报文:
POST /api/telephony/callback/tencent(app.tencent-ccc.mapping.*字段映射)
(3)合规分层
库内手机号 AES 加密(JPA Converter)
接口层按角色脱敏(ADMIN / SUPERVISOR / AGENT 策略可配)
全链路
/api/*审计日志 Filter
(4)外呼任务引擎
线程池并发拨号(
app.task.concurrency)失败自动重试 + 定时补偿扫描(
OutboundRetryScheduler)单条幂等键防重复外呼
五、平台核心功能
5.1 线路与模板
固话配置:保留企业电信固话号码,外呼/接听统一展示品牌线路;
网关管理:MOCK(本地模拟)、HTTP_GATEWAY(自定义 REST)、TENCENT_CCC(云联络中心);
话术模板:支持变量占位,外呼时按客户维度渲染 TTS 内容。
5.2 智能外呼
功能 | 描述 |
|---|---|
任务创建 | 绑定模板 + 客户清单(单条或 CSV 批量导入) |
生命周期 | 创建 → 启动 → 暂停 → 终止 → 重启 |
进度追踪 | 总数 / 完成 / 成功 / 失败实时统计 |
明细管理 | 每条外呼记录状态、重试次数、拨号结果 |
失败补偿 | 可配置最大重试次数与扫描间隔 |
5.3 AI 客服与转人工
知识问答库:维护 FAQ,AI 来电时语义匹配应答;
通话会话:记录方向、状态、问答文本、时长、满意度;
对话 transcript:多轮对话逐句归档;
转人工工单:AI 无法回答时自动建单,坐席「认领 → 处理 → 结案」闭环。
5.4 导入导出
模板 CSV 导入、外呼任务 CSV 导入;
通话记录 XLSX 导出,便于质检与运营分析。
5.5 账号与权限(RBAC)
角色 | 典型权限 |
|---|---|
ADMIN | 账号管理、全量配置、可选明文手机号 |
SUPERVISOR | 任务调度、线路配置、数据导出 |
AGENT | 工单处理、通话查看(录音权限可单独关闭) |
5.6 管理后台模块
侧栏七大模块:仪表盘 · 线路与模板 · 外呼任务 · AI 客服与工单 · 知识问答 · 导入导出 · 账号权限,符合企业后台操作习惯,上手成本低。
六、平台独特优势
优势 1:外呼 + 接听一体化,不是「半套客服」
多数开源项目只做聊天或只做外呼。Smart AI Service 将外呼任务引擎、AI 接听、转人工工单、通话归档放在同一数据模型与后台,运营人员一个系统完成全流程管理。
优势 2:网关抽象,开发调试与生产部署平滑切换
本地MOCK零依赖跑通业务逻辑;联调阶段接HTTP_GATEWAY;上线对接腾讯云联络中心,SDK 参数、Action、回调字段均可 YAML 配置,无需改代码。
优势 3:「可关 Redis」的务实工程观
很多 Spring Boot 项目本地一启动就报 Redis Connection refused。本项目通过app.redis.enabled+management.health.redis.enabled双开关,让开发者先跑通业务,再补基础设施——这一点对团队推广和 CI 流水线极其友好。
优势 4:合规能力内置,而非事后补丁
加密存储、PII 脱敏、审计日志、录音访问控制均在配置层开关,满足政企、金融客户对「可证明合规」的基本诉求。
优势 5:前端主流范式,二次开发友好
Vue3 + Element Plus 侧栏布局,模块即视图,API 代理清晰,适合作为内部中台快速定制 UI 与报表。
优势 6:数据库脚本完整,11 表 2 行种子数据
schema.sql+data.sql一键初始化,默认账号admin / supervisor / agent三级角色,演示与压测开箱即用。
七、平台安装使用
7.1 环境要求
组件 | 版本建议 | 是否必须 |
|---|---|---|
JDK | 17+ | ✅ |
Maven | 3.8+ | ✅ |
MySQL | 8.0+ | ✅ |
Node.js | 18 LTS(推荐) | ✅ 前端 |
Redis | 6+ | 可选(生产建议开启) |
MinIO | 最新稳定版 | 可选(录音归档) |
7.2 快速部署(四步)
Step 1 — 初始化数据库
mysql -uroot -p -e "CREATE DATABASE IF NOT EXISTS ai_cs CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" mysql -uroot -p ai_cs < backend/sql/schema.sql mysql -uroot -p ai_cs < backend/sql/data.sqlStep 2 — 启动后端
cd backend mvn spring-boot:run本地 MySQL 无密码时:
mvn spring-boot:run -Dspring-boot.run.arguments="--spring.datasource.username=root --spring.datasource.password="服务地址:http://localhost:8080
Step 3 — 启动前端
cd frontend npm install npm run dev管理后台:http://localhost:5173(/api代理至 8080)
Step 4 — 登录体验
用户名 | 密码 | 角色 |
|---|---|---|
supervisor | super123 | 主管(推荐日常体验) |
admin | admin123 | 管理员 |
agent | agent123 | 坐席 |
7.3 核心配置速查(application.yml)
app: redis: enabled:false # 本地 false;生产 true security: callback-secret:*** # 电信回调验签 encryption-key:*** # 16 字节 AES 密钥 task: max-retry:2 concurrency:4 speech: asr-url:"" tts-url:"" storage: endpoint:"" # MinIO 地址,空则跳过归档 bucket:ai-cs-recordings tencent-ccc: sdk: enabled:false # 接腾讯云时 true详细配置说明见项目根目录 README.md。
7.4 典型使用路径
线路与模板→ 配置固话与网关类型 → 新建外呼话术模板;
外呼任务→ 创建任务、导入客户 CSV → 启动任务 → 查看明细与成功率;
知识问答→ 录入 FAQ;
AI 客服与工单→ 查看来电会话、处理转人工工单;
导入导出→ 批量导入或导出通话报表。
八、应用场景及案例说明
场景 1:银行信用卡还款提醒(外呼)
痛点:每月数万笔临近还款客户,人工外呼成本高、接通率低。
方案:
在「线路与模板」配置银行官方固话与 TENCENT_CCC 网关;
创建模板:
您好 ${customerName},您尾号 ${cardTail} 的信用卡本期账单 ${amount} 元,请于 ${dueDate} 前还款。;CSV 导入客户清单,启动外呼任务;
失败号码自动重试,全程录音存 MinIO,报表 XLSX 导出交质检。
价值:AI TTS 统一口径,合规录音可追溯,主管在仪表盘实时看成功率。
场景 2:政务 12345 夜间 AI 接听(Inbound + 转人工)
痛点:夜间人工坐席缩减,简单政策咨询仍大量涌入。
方案:
知识库录入「公积金提取」「居住证办理」等高频 FAQ;
来电经网关回调 → AI 匹配问答 → 写入 transcript;
超范围问题自动建转人工工单,次日坐席认领处理;
敏感手机号加密存储,列表默认脱敏,审计日志记录坐席操作。
价值:7×24 覆盖 80% 重复咨询,复杂个案不断档流转。
场景 3:电商大促物流异常通知(批量外呼 + MOCK 联调)
痛点:大促期间物流延迟,需快速通知用户,开发期不能打真实电话。
方案:
开发环境
providerType=MOCK,完整跑通任务创建、并发、重试逻辑;联调环境切换
HTTP_GATEWAY,对接自建 SIP 网关;上线前切换腾讯云 CCC,配置 SDK Action 与回调 mapping;
Redis 幂等打开,防止云厂商重复回调导致重复扣费或重复通知。
价值:同一套代码三环境渐进,降低 telecom 联调风险。
场景 4:保险回访满意度采集(DTMF + 归档)
痛点:理赔完成后需电话回访并采集满意度按键。
方案:
外呼模板播报回访话术;
电信回调写入
dtmfFeedback、customerSatisfaction字段;通话会话与录音 URL 关联归档;
AGENT 角色默认不可听录音,SUPERVISOR 以上按合规策略开放。
价值:结构化满意度数据直接进入 MySQL,无需人工填表。
结语
Smart AI Service 试图回答一个工程问题:如何把「AI 客服」从 PPT 变成可部署、可审计、能打电话的系统?
它不是最完美的商用 CCAAS 替代品,但在「外呼引擎 + AI 接听 + 转人工 + 网关适配 + 合规开关 + 可选 Redis/MinIO」的组合上,提供了一条可运行、可扩展、可私有化的路径。
无论你是要落地一个企业热线,还是要学习电信回调与任务调度如何在一个 Spring Boot 项目里协作,Smart AI Service 都值得 fork 下来跑一遍。
项目仓库结构
smartAIService/ ├── backend/ # Spring Boot API + SQL + 腾讯 SDK 文档 ├── frontend/ # Vue3 管理后台 ├── README.md # 安装与配置手册 └── 平台简介.md # 本文延伸阅读
腾讯云云联络中心
腾讯云 Java SDK
项目内:
backend/docs/tencentcloud-sdk-integration.md
