# SmartCall **Repository Path**: gdzWork/SmartCall ## Basic Information - **Project Name**: SmartCall - **Description**: 结合了传统呼叫中心和大模型实现的大模型AI客服呼叫中心。 基于JAVA17、SpringBoot3+开发。 🔝 🔝 记得上边点个star 关注更新。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: https://qidiangk.com - **GVP Project**: No ## Statistics - **Stars**: 61 - **Forks**: 31 - **Created**: 2026-06-30 - **Last Updated**: 2026-07-03 ## Categories & Tags **Categories**: erp **Tags**: 呼叫中心, AI客服, Java, 人工智能, 大模型 ## README

SmartCall Logo

SmartCall · AI 客服呼叫中心

AI 驱动的智能客服呼叫中心系统,让每一通电话都被智慧对待

官网 | 🎯 在线演示 | 功能特性 | 系统架构 | 技术栈 | 快速开始

Java 17 Spring Boot 3.5 Spring Cloud Asterisk MyBatis-Flex Vue 3 License Author

--- ## 📖 项目简介 **SmartCall** 是一套基于 AI 大模型 + Asterisk 通信引擎构建的新一代智能客服呼叫中心系统。系统深度融合了 **AI 语音机器人**、**智能 IVR 流程编排**、**实时语音识别(ASR)**、**语音合成(TTS)**、**大模型意图识别** 等核心能力,为企业提供从呼入智能应答到批量外呼的全链路智能客服解决方案。 无论是电商售后、金融催收、教育招生还是企业客服,SmartCall 都能通过灵活的流程编排和强大的 AI 能力,帮助企业大幅降低人工成本、提升服务效率与客户满意度。 > 🎯 **在线演示**:[https://smartaster.qidiangk.com](https://smartaster.qidiangk.com) > > 账号:`demo` | 密码:`123456` > **SmartCall**提供了完整的部署与开发文档:[qidiangk.com](https://qidiangk.com/docs/deploy),涵盖开发环境配置、服务端启动、前端运行、微服务部署和单体部署等关键步骤。 ## ✨ 核心特性 ### 🤖 AI 智能应答 - **大模型意图识别** — 集成通义千问(DashScope)、DeepSeek 等主流大模型,通过 Prompt 工程实现精准的来电意图分类,支持自定义意图配置 - **AI 智能体对话** — 内置知识库智能体集成能力(已对接 MaxKB),AI 机器人可基于企业知识库进行多轮智能问答,支持按来电号码自动维护对话上下文、智能体选择与会话管理。架构上采用 `NodeGranter` 插件化设计,可扩展对接 Dify、Coze、FastGPT 等任意 AI Agent 平台 - **正则 + 模型双引擎** — 意图判断支持正则表达式快速匹配与 AI 模型深度识别的双重策略,兼顾响应速度与识别精度 - **情绪分析** — 集成阿里云 NLP 情感分析能力,实时感知客户情绪变化,负面情感自动升级至人工坐席 - **AI 信息提取** — 基于大模型自动从客户对话中提取姓名、地址、订单号等结构化关键信息,无需人工录入 ### 📞 智能 IVR 流程编排 - **可视化流程设计** — 基于 LogicFlow 实现的拖拽式 IVR 流程编排器,支持节点连线、条件分支、子流程嵌套 - **丰富的流程节点**: - 🎙️ **语音播放(Say)** — TTS 实时合成语音播报,支持 SpEL 表达式动态内容 - 🎧 **语音识别收听(Answer)** — ASR 实时语音转文字,采集客户语音指令,并支持客户实时打断 - 🔢 **DTMF 收号(Received)** — 支持按键输入采集 - 🧠 **意图识别(Intention)** — AI 大模型驱动的多意图分类节点 - 🤖 **智能体对话(Agent)** — 调用知识库智能体进行多轮问答,支持上下文记忆与智能体动态选择 - 🔀 **条件分支(Condition)** — 基于 SpEL 表达式的动态条件路由 - 📋 **信息提取(Extract)** — AI 自动从对话中提取结构化关键信息 - 🔌 **HTTP 服务调用(Service)** — 流程中直接调用外部 API,实时查询业务数据 - 📜 **脚本执行(Script)** — 支持 Groovy / JavaScript 脚本在线编写与调试 - 🔗 **转接人工(Transfer)** — 智能队列分配,支持按坐席组策略路由 - 📂 **子流程调用(Child)** — 流程模块化复用,降低编排复杂度 - 📌 **变量赋值(Variable)** — 全局变量动态管理,支撑流程间数据传递 - 📴 **挂断(Hangup)** — 支持挂断前播放结束语 - **在线调试工具** — 内置 HTTP 接口测试器、脚本语法校验器(JavaScript / Groovy Lint),流程节点即编即测 ### 📊 全维度数据统计 - **实时数据大屏** — 今日通话总量、在线坐席数、AI 处理量、平均通话时长、接通率等核心指标一目了然 - **通话趋势分析** — 按小时 / 按周维度展示 AI 通话与人工通话趋势对比 - **AI vs 人工占比分析** — 可视化 AI 独立处理、AI 辅助、人工处理三类通话占比 - **坐席效能排名** — 实时统计坐席接听量排名,辅助绩效管理 - **通话类型分布** — 呼入 / 呼出 / 内部通话 / 网页外呼等多维度饼图分析 ### 👥 坐席管理 - **坐席全生命周期管理** — 坐席新增、修改、删除、上线 / 下线 / 暂停 / 恢复 - **坐席组管理** — 按业务分组管理坐席,支持队列策略配置(振铃策略、超时策略等) - **实时坐席状态** — 基于 SSE(Server-Sent Events)推送坐席实时状态变化 - **通话保持 / 转接** — 支持通话保持、通话转接等完整坐席操作 ### 📋 通话记录管理(CDR) - **全量通话记录** — 完整记录呼入、呼出、内部通话、AI 通话等所有通话数据 - **AI 通话记录** — 独立筛选 AI 机器人处理的通话记录,便于 AI 效果分析 - **坐席通话记录** — 按坐席维度查询通话明细 - **呼损记录** — 未接通来电专项统计,辅助优化服务策略 - **转接记录** — AI 转人工的完整链路追踪 - **通话录音管理** — 全程自动录音,支持在线回放与下载,AI 通话与人工转接通话分别录音 ### 📤 智能外呼 - **外呼任务管理** — 创建、编辑、启停外呼任务,支持手动启动与定时启动 - **批量号码导入** — 支持 Excel 批量导入外呼号码及自定义业务参数 - **智能重拨策略** — 可配置重拨条件(未接 / 忙线 / 无法接通等)、重拨次数与间隔 - **多机器人并发** — 支持配置并发机器人数量,提升外呼效率 - **去重校验** — 自动过滤重复号码,避免无效呼叫 - **分布式任务调度** — 基于 Redisson 分布式锁保证多实例下任务不重复执行 ### 📡 线路管理 - **SIP 中继线路管理** — 线路注册、鉴权认证、传输协议(UDP/TCP/TLS)灵活配置 - **线路状态监控** — 实时监控 SIP 线路注册状态与通话质量 - **多线路支持** — 支持多运营商线路接入,智能路由选择 ### 🔐 企业级权限与安全 - **RBAC 权限体系** — 基于角色的细粒度权限控制,精确到按钮级别 - **多租户架构** — 原生支持多租户数据隔离,一套系统服务多家企业 - **OAuth2 认证** — 统一身份认证网关,支持多种客户端接入 - **API 网关** — 统一路由、鉴权过滤、跨域处理、访问日志、限流保护 ## 🏗️ 系统架构 SmartCall 采用**微服务 + 单体双模架构**,既支持微服务独立部署满足高可用与弹性伸缩需求,也支持单体模式一键启动快速部署,灵活适配不同规模的企业场景。 ### 架构拓扑 系统架构拓扑 **核心调用链路**: - **语音通话**:SIP 话机 → Asterisk PBX(SIP 协议)→ AGI 触发 IVR 流程 → smart-aster 执行节点链 - **API 请求**:Web 前端 → Nginx → Gateway(路由 / 鉴权)→ 各业务服务 - **IVR 节点执行**:ASR/TTS 节点 → WebSocket → 语音服务(通义千问 DashScope / 阿里云 NLS / 电信) - **智能体对话**:Agent 节点 → smart-maxkb → MaxKB Server(HTTP 多轮对话) ### 模块说明 | 模块 | 说明 | | --- | --- | | `smart-aster` | **核心呼叫模块** — 集成 Asterisk AMI/AGI,实现呼叫控制、IVR 流程引擎、ASR/TTS 对接、AI 意图识别等核心通信能力 | | `smart-maxkb` | **AI 智能体模块** — 智能体平台适配层,内置 MaxKB 对接实现,管理智能体应用列表、API Key 认证、多轮对话会话管理,为 IVR 流程提供知识问答能力。基于模块化设计,可扩展对接其他 AI Agent 平台 | | `smart-gateway` | **API 网关** — 基于 Spring Cloud Gateway,统一路由转发、OAuth2 鉴权、跨域处理、访问日志、动态路由 | | `smart-auth` | **认证中心** — 统一身份认证与授权服务,支持 OAuth2 多客户端接入 | | `smart-boot` | **单体启动器** — 聚合所有模块的单体模式启动入口,一键运行完整系统,无需微服务基础设施 | | `smart-api` | **服务间 API** — 各微服务间的 Feign 客户端接口定义(含 smart-system-api、smart-user-api、smart-resource-api、smart-maxkb-api) | | `smart-common` | **公共模块** — 通用常量、枚举、校验注解、公共工具类 | | `smart-upms` | **用户权限管理** — 包含 smart-system(系统管理、字典、组织、角色、菜单、租户)、smart-user(用户、岗位)、smart-resource(文件、OSS、短信) | | `smart-ops` | **运维监控** — 包含 smart-log(操作日志、监控面板)、smart-doc(Knife4j 接口文档聚合)、smart-admin(Spring Boot Admin 服务监控) | ### 双模运行 - **微服务模式**:各模块独立部署为 Spring Cloud 微服务,通过 Nacos 进行服务注册与配置管理,Gateway 统一网关路由,适合大规模生产部署 - **单体模式**:运行 `smart-boot` 模块即可启动完整系统,无需 Nacos / Gateway 等中间件依赖,适合中小规模快速部署与开发调试 ## 🛠️ 技术栈 ### 后端技术栈 | 技术 | 版本 | 说明 | | --- | --- | --- | | Java | 17 | 基础运行环境 | | Spring Boot | 3.5.x | 应用框架 | | Spring Cloud | 2025.x | 微服务治理 | | Spring Cloud Alibaba | - | Nacos / Sentinel / Seata | | Spring AI | - | 大模型集成框架(DashScope / DeepSeek) | | MyBatis-Flex | 1.11.5 | ORM 持久层框架 | | Asterisk + PJSIP | - | 开源 PBX 通信引擎 | | Asterisk-Java | - | Asterisk AMI / AGI Java SDK | | Alibaba NLS SDK | 2.2.x | 阿里云智能语音(ASR / TTS) | | DashScope SDK | - | 通义千问语音(Qwen3-ASR / CosyVoice / Qwen-TTS) | | Spring Cloud Gateway | - | API 网关 | | OpenFeign + OkHttp | - | 服务间调用 | | Knife4j / SpringDoc | - | 接口文档 | | Redisson | - | 分布式锁 / 缓存 / 消息 | | Druid | - | 数据库连接池与 SQL 监控 | | Retrofit | - | MaxKB HTTP 客户端 | | Groovy / Nashorn | 3.0 / 15.6 | 动态脚本引擎 | | Undertow | - | 高性能 Web 容器 | | Docker / Docker Compose | - | 容器化部署 | | SkyWalking | 10.4 | 分布式链路追踪 | ### 前端技术栈 | 技术 | 说明 | | --- | --- | | Vue 3 + TypeScript | 渐进式前端框架 | | Vite | 下一代前端构建工具 | | Vue Vben Admin | 企业级中后台框架 | | Element Plus | UI 组件库 | | LogicFlow | 可视化流程编排引擎 | | CodeMirror | 在线代码编辑器(支持 JavaScript / Groovy 语法高亮与校验) | | Pinia | 状态管理 | | Vue Router | 路由管理 | | pnpm Monorepo | 多应用工程管理(web-admin 管理端 + web-smart 坐席端) | ### AI 与通信能力 | 能力 | 支持 | 说明 | | --- | --- | --- | | 大语言模型 | 通义千问 / DeepSeek | 基于 Spring AI 统一抽象,可平滑切换模型 | | ASR 语音识别 | 阿里云 NLS / 通义千问 DashScope / 电信 ASR | 实时流式语音转文字,支持多种模型与自定义对接 | | TTS 语音合成 | 阿里云 NLS / 通义千问 DashScope / 电信 TTS | 文字转语音播报,支持多模型、多音色与参数配置 | | 情感分析 | 阿里云 NLP | 实时情感倾向判断(正面 / 负面 / 中性) | | 知识库问答 | MaxKB(内置)/ 可扩展 | 企业知识库智能体多轮对话,支持扩展对接 Dify、Coze、FastGPT 等平台 | > 💡 **扩展能力**:系统通过 `VoiceModelEnum` 枚举统一管理语音引擎,ASR 和 TTS 均基于接口抽象实现。目前已内置阿里云、通义千问(DashScope)、电信三家引擎,同时支持企业自定义对接第三方 ASR/TTS 引擎(如科大讯飞、百度语音、腾讯云等),只需实现对应接口即可无缝替换。 ## 🖥️ 功能截图 ### 拨号盘 ![拨号盘](docs/images/dialpad.png) ### IVR 流程编排 ![流程编排](docs/images/ivr-flow-editor.png) ### 通话记录 ![通话记录](docs/images/call-records.png) ### 坐席管理 ![坐席管理](docs/images/agent-management.png) ### 外呼任务 ![外呼任务](docs/images/outbound-task.png) ## 🚀 快速开始 ### 环境要求 | 组件 | 版本要求 | | --- |--------------------| | JDK | 17+ | | MySQL | 8.0+ | | Redis | 6.0+ | | Asterisk | 22 (PJSIP) | | Nacos | 3.x(微服务模式需要) | | Node.js | 18+(前端构建) | | pnpm | 9+(前端包管理) | | MaxKB | 最新版(可选,AI 知识库问答需要) | ### 数据库初始化 1. 创建数据库: ```sql CREATE DATABASE smartaster DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE DATABASE smartaster_asterisk DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ``` 2. 导入 SQL 脚本: ``` sql/mysql_create_core.sql -- 核心表结构 sql/mysql_smartaster.sql -- 业务数据 sql/mysql_asterisk.sql -- Asterisk 配置表 ``` ### 后端启动 #### 单体模式(推荐开发环境) ```bash # 1. 克隆项目 git clone <仓库地址> cd SmartAster # 2. 修改配置 # 编辑 smart-boot/src/main/resources/application.yml # 修改 MySQL、Redis 等连接信息 # 3. 编译打包 mvn clean package -DskipTests # 4. 启动 BootStartApplication java -jar smart-boot/target/smart-boot.jar ``` > 单体模式无需 Nacos / Gateway,直接访问 `http://localhost:9999` 即可 #### 微服务模式 ```bash # 1. 启动基础设施 cd script/app docker-compose up -d nacos sentinel # 2. 配置 Nacos # 将 docs/config/nacos/ 下的配置文件导入 Nacos # 3. 依次启动各微服务 java -jar smart-gateway/target/smart-gateway.jar java -jar smart-auth/target/smart-auth.jar java -jar smart-aster/target/smart-aster.jar java -jar smart-upms/smart-system/target/smart-system.jar java -jar smart-upms/smart-user/target/smart-user.jar java -jar smart-upms/smart-resource/target/smart-resource.jar java -jar smart-ops/smart-log/target/smart-log.jar java -jar smart-maxkb/target/smart-maxkb.jar ``` ### Asterisk 部署 ```bash # 使用项目提供的 Docker 镜像一键部署 Asterisk cd script/asterisk docker-compose up -d ``` > Asterisk 配置请参考 `script/asterisk/image/conf/` 目录下的配置文件 ### 前端启动 ```bash # 1. 进入前端项目 cd smart-call-ui # 2. 安装依赖 pnpm install # 3. 启动坐席工作台 pnpm -F @jpower/web-smart dev ``` ### Docker Compose 一键部署 ```bash cd script/app docker-compose up -d ``` ## 📁 项目结构 ``` SmartCall ├── smart-aster # 核心呼叫模块(IVR引擎 / ASR / TTS / AI意图) ├── smart-maxkb # MaxKB 智能体对接模块 ├── smart-gateway # API 网关(路由/鉴权/限流/日志) ├── smart-auth # 统一认证中心 ├── smart-boot # 单体模式启动器 ├── smart-api # 服务间 Feign API │ ├── smart-system-api │ ├── smart-user-api │ ├── smart-resource-api │ └── smart-maxkb-api ├── smart-common # 公共模块(常量/枚举/校验注解) ├── smart-upms # 用户权限管理 │ ├── smart-system # 系统管理(字典/组织/角色/菜单/租户) │ ├── smart-user # 用户管理(用户/岗位/角色用户) │ └── smart-resource # 资源管理(文件/OSS/短信) ├── smart-ops # 运维监控 │ ├── smart-log # 日志与监控 │ ├── smart-doc # Knife4j 接口文档聚合 │ └── smart-admin # Spring Boot Admin ├── script # 部署脚本 │ ├── app # Docker Compose 编排 │ ├── asterisk # Asterisk 镜像与配置 │ ├── docker # Nacos / Nginx / SkyWalking / ELK 配置 │ └── elk # ELK 日志栈 ├── sql # 数据库脚本 └── docs # 文档与配置模板 ``` ## 🔌 扩展与集成 ### 自定义 ASR / TTS 引擎 系统通过 `VoiceModelEnum` 枚举统一管理语音引擎,在 IVR 流程中可按节点选择 ASR/TTS 引擎。 #### 已内置引擎 | 引擎 | ASR 实现 | TTS 实现 | 说明 | | --- | --- | --- | --- | | 阿里云 | `AliAsrClient` | `AliTtsClient` | 阿里云 NLS 智能语音,WebSocket 流式通信 | | 通义千问(DashScope) | `DashScopeAsrClient` | `DashScopeTtsClient` | 通义千问语音大模型,支持多模型自动路由 | | 电信 | `DianxinAsrClient` | `DianxinTtsClient` | 电信 AI 语音,WebSocket 流式通信 | #### 通义千问(DashScope)详细说明 通义千问引擎采用**代理 + 模型路由**架构,根据配置的模型名称自动选择底层实现: **ASR 语音识别**(`DashScopeAsrClient` 自动路由): - `DashScopeQwenAsrClient` — Qwen3-ASR 系列(`qwen3-asr-flash-realtime`),基于 `OmniRealtimeConversation` API - `DashScopeFunAsrClient` — Fun-ASR / Paraformer 系列(`fun-asr-realtime`、`paraformer-realtime-8k-v2`),基于 `Recognition` API **TTS 语音合成**(`DashScopeTtsClient` 自动路由): - `DashScopeQwenTtsClient` — Qwen3-TTS 系列(`qwen3-tts-flash-realtime`、`qwen3-tts-instruct-flash-realtime`) - `DashScopeCosyVoiceTtsClient` — CosyVoice 系列(`cosyvoice-v3-flash`、`cosyvoice-v3-plus` 等) ```yaml ivr: dashscope: api-key: ${IVR_DASHSCOPE_API_KEY:} # DashScope API Key # 自定义 WebSocket 地址(内网私有化部署时配置,留空使用阿里云官方地址) # websocket-url: wss://your-private-dashscope-server/api-ws/v1/realtime asr-option: model: qwen3-asr-flash-realtime # ASR 模型 sample-rate: 8000 # 采样率(电话场景建议 8000) language: zh # 识别语言 tts-option: model: qwen3-tts-flash-realtime # TTS 模型 sample-rate: 8000 # 采样率 volume: 50 # 音量 [0, 100] speech-rate: 1.0 # 语速 [0.5, 2.0] ``` > 💡 IVR 流程中每个节点可独立配置 ASR/TTS 引擎参数(模型、音色、采样率等),页面传入的动态配置会自动覆盖配置文件中的默认值,实现灵活的多引擎混用。 ### 自定义 AI 大模型 基于 Spring AI 统一抽象,通过配置切换不同的大模型提供商: ```yaml jpower: ai: primary: dashscope # 可选: dashscope / deepseek / 自定义 spring: ai: dashscope: api-key: your-api-key chat: options: model: qwen3.5-plus deepseek: api-key: your-api-key chat: options: model: deepseek-r1 ``` ### AI 智能体平台集成 系统内置了 MaxKB 知识库平台的对接实现,通过 `AgentChatClient` Feign 接口与智能体服务交互,支持智能体选择、API Key 自动管理、按来电号码维护对话上下文等能力。IVR 流程中的「智能体对话」节点通过 `NodeGranter` 插件机制调用智能体服务,开发者可基于同一机制扩展对接其他 AI Agent 平台: ```yaml maxkb: username: admin password: your-password baseUrl: http://your-maxkb-host:8081/ externalBaseUrl: http://your-maxkb-host:8081/ # 外网访问地址 ``` ### 内网环境部署 系统**完整支持内网(私有化)环境部署**,所有外部依赖均可通过配置指向内网地址: - **语音引擎**:通义千问 DashScope 支持自定义 `websocket-url`,可将 ASR/TTS 的 WebSocket 连接指向内网私有化部署的语音服务,无需访问公网 - **AI 大模型**:DeepSeek / 通义千问等模型均通过 `base-url` 配置,可对接内网部署的大模型推理服务(如 vLLM、Ollama 等) - **智能体平台**:MaxKB 的 `baseUrl` 配置项直接支持内网地址 - **基础设施**:MySQL、Redis、Nacos、Asterisk 等全部通过环境变量注入连接信息,适配任意内网环境 - **容器化部署**:提供完整的 Docker Compose 编排文件,一键拉起全部服务 ## 📄 开源协议 SmartCall 开源软件遵循 [Apache 2.0 协议](https://www.apache.org/licenses/LICENSE-2.0.html) ,允许商业使用,但务必保留类作者、Copyright 信息。 ## 🤝 联系我们 - **官网**:[https://qidiangk.com](https://qidiangk.com) - **邮箱**:ding931226@yeah.net ---

SmartCall — 让 AI 为每一通电话赋能