# callcenter-ai **Repository Path**: jf_linux/callcenter-ai ## Basic Information - **Project Name**: callcenter-ai - **Description**: 做了ai文本对话以及语音对话,ai配置,知识库,文档管理 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-10-21 - **Last Updated**: 2026-10-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 🏢 智能呼叫中心系统 一个完整的400电话呼叫中心解决方案,支持AI智能客服、WebRTC网页通话、智能路由、工单管理、报表统计等功能。 ## ✨ 核心功能 - 📞 **400电话接入**:支持多路并发(最高400路),通过SIP中继对接运营商 - 🌐 **WebRTC网页通话**:纯浏览器接听电话,无需安装任何软电话客户端 - 🤖 **AI智能客服**:ASR→知识库→LLM→TTS全流程自动化 - 🧠 **ACD智能路由**:技能匹配/轮询/最少通话/最长空闲四种策略 - 📋 **工单管理**:从通话自动创建工单,支持分配/升级/流转/日志 - 👥 **客户管理(CRM)**:客户信息、等级(VIP/SVIP)、来电识别 - 📊 **报表统计**:日报/周报/客服绩效/SLA达标率/满意度分析 - 📞 **预测式外呼**:自动拨打号码列表,接通后转接台席 - 🎯 **技能组管理**:灵活配置台席分组、技能分数、路由策略 - 📺 **实时监控大屏**:台席状态、通话趋势、等待队列、SLA监控 - 🎙️ **通话录音**:自动录音+语音转文字(ASR)+回放 - ⭐ **满意度评价**:通话后客户评分+备注 - 📚 **知识库管理**:支持语义检索的智能问答 ## 🛠 技术栈 ### 后端 - Java 17 + Spring Boot 3.2 - MyBatis Plus + MySQL 8.0 - Redis + MinIO - WebSocket (STOMP) 实时推送 ### 前端 - Vue 3 + Vite 5 - Element Plus - ECharts 数据可视化 ### 通信 - FreeSWITCH (媒体服务器) - Kamailio (SIP代理,可选) - WebRTC (浏览器→FreeSWITCH) ### AI服务 - 阿里云ASR/TTS(或本地部署) - Qwen/GLM大模型 - ChromaDB向量知识库 ## 📁 项目结构 ``` call-center/ ├── callcenter-backend/ # Java后端 │ ├── controller/ # 控制器层 │ │ ├── webrtc/ # WebRTC信令接口 │ │ ├── acd/ # ACD路由接口 │ │ ├── TicketController # 工单管理 │ │ ├── CustomerController # 客户管理 │ │ ├── ReportController # 报表统计 │ │ ├── OutboundTaskController # 外呼管理 │ │ ├── SkillGroupController # 技能组管理 │ │ ├── IvrConfigController # IVR配置 │ │ └── ... # 其他控制器 │ ├── service/ # 服务层 │ │ ├── webrtc/ # WebRTC服务 │ │ ├── acd/ # ACD路由服务 │ │ ├── ReportService # 报表服务 │ │ ├── CsTicketService # 工单服务 │ │ ├── CsCustomerService # 客户服务 │ │ └── ... # 其他服务 │ ├── model/ # 数据模型 │ │ ├── entity/ # 实体类(14张表) │ │ ├── dto/ # 请求DTO │ │ └── vo/ # 响应VO │ └── resources/ │ ├── schema.sql # 数据库初始化脚本 │ └── sip/ # FreeSWITCH配置模板 ├── callcenter-frontend/ # Vue前端 │ ├── views/ # 页面组件 │ │ ├── Dashboard.vue # 监控大屏 │ │ ├── DeskManagement.vue # 台席管理(WebRTC) │ │ ├── CallRecords.vue # 通话记录 │ │ ├── CustomerManagement.vue # 客户管理 │ │ ├── TicketManagement.vue # 工单管理 │ │ ├── ReportDashboard.vue # 报表统计 │ │ ├── OutboundTask.vue # 外呼任务 │ │ ├── SkillGroupManagement.vue # 技能组管理 │ │ ├── IvrConfigManagement.vue # IVR配置 │ │ └── AiCustomer.vue # AI客服 │ ├── utils/ │ │ ├── WebRtcClient.js # WebRTC客户端 │ │ └── WebSocketService.js # WebSocket服务 │ └── api/ # API接口定义 ├── docker-compose.yml # Docker编排 ├── nginx.conf # Nginx配置 ├── deploy-test.sh # 部署测试脚本 ├── FUNCTIONAL_DOCUMENTATION.md # 完整功能文档 ├── DEPLOYMENT_TEST_PLAN.md # 部署测试方案 └── WEBRTC_DEPLOYMENT.md # WebRTC部署指南 ``` ## 🚀 快速开始 ### 方式一:Docker一键部署(推荐) ```bash # 1. 克隆项目 git clone cd call-center # 2. 一键部署测试 ./deploy-test.sh full # 3. 访问系统 # 前端: http://localhost:3000 # 后端API: http://localhost:8080/api # Swagger: http://localhost:8080/api/swagger-ui.html # MinIO: http://localhost:9001 ``` ### 方式二:本地开发部署 ```bash # 1. 启动基础设施 docker compose up -d mysql redis minio # 2. 初始化数据库 mysql -u root -p < callcenter-backend/src/main/resources/schema.sql # 3. 启动后端 cd callcenter-backend mvn spring-boot:run # 4. 启动前端 cd callcenter-frontend npm install npm run dev ``` ## 📋 功能模块说明 | 模块 | 路由 | 说明 | |------|------|------| | 监控大屏 | `/dashboard` | 实时统计、图表、SLA监控 | | 台席管理 | `/desks` | WebRTC通话、来电振铃、静音/挂断 | | 通话记录 | `/calls` | 录音回放、满意度评价、搜索 | | 客户管理 | `/customers` | 客户信息、等级、来电识别 | | 工单管理 | `/tickets` | 创建/分配/升级/流转/日志 | | 外呼任务 | `/outbound` | 预测式外呼、号码列表、统计 | | 技能组管理 | `/skill-groups` | 技能组配置、成员管理 | | IVR配置 | `/ivr-config` | IVR树配置、路由规则 | | 报表统计 | `/reports` | 日报/周报/绩效/SLA/满意度 | | AI客服 | `/ai-chat` | AI对话演示、ASR/TTS配置 | | 知识库管理 | `/knowledge` | 知识条目CRUD、分类管理 | ## 🔧 配置说明 ### 后端配置 (application.yml) ```yaml # 数据库 spring.datasource.url=jdbc:mysql://localhost:3306/callcenter # Redis spring.redis.host=localhost spring.redis.port=6379 # MinIO minio.endpoint=http://localhost:9000 # AI服务 ai.asr.provider=aliyun ai.tts.provider=aliyun ai.llm.base-url=http://localhost:8000/v1 # FreeSWITCH (WebRTC) freeswitch.ws-host=localhost freeswitch.ws-port=7443 freeswitch.ws-password=ClueCon # 呼叫中心 callcenter.max-concurrency=400 callcenter.ring-timeout=30 ``` ## 📝 API文档 启动后端后访问 Swagger UI: ``` http://localhost:8080/api/swagger-ui.html ``` ## 🔐 安全注意事项 - 生产环境务必启用HTTPS - 修改默认密码 - 配置防火墙规则 - 定期备份数据库 ## 📄 文档 - [完整功能文档](FUNCTIONAL_DOCUMENTATION.md) - [部署测试方案](DEPLOYMENT_TEST_PLAN.md) - [WebRTC部署指南](WEBRTC_DEPLOYMENT.md) - [SIP对接指南](SIP_INTEGRATION_GUIDE.md) - [400电话接入指南](CALLCENTER_400_INTEGRATION.md) - [技术架构文档](ARCHITECTURE.md)