项目简介
AI智能客服系统是一个基于微服务架构的企业级智能客服平台,集成了大语言模型(LLM)、知识库检索(RAG)、工单管理等核心功能,为企业提供从传统人工客服到AI智能问答的完整解决方案。项目采用前后端分离架构,后端基于Spring Boot 3.x + Spring Cloud Gateway,前端使用Vue 3 + Element Plus,支持多租户、多会话隔离,具备高可扩展性和高可用性。
核心特性
🤖 AI智能对话
- 基于大语言模型的智能问答,支持上下文会话管理
- 意图识别与智能路由,自动判断用户需求
- Function Call工具调用,支持扩展AI能力
- 多轮对话记忆管理,Redis持久化存储
📚 知识库检索(RAG)
- 传统FAQ管理:支持FAQ的增删改查、分类管理
- RAG检索增强生成:
- 多格式文档支持:PDF、TXT、DOCX、MD
- 智能文本切片:可配置chunkSize和overlap参数
- 向量化存储:支持Chroma(本地开发)和Milvus(生产环境)
- 两阶段检索:向量召回 + Rerank重排,提升检索精度
- 多用户会话隔离:基于Redis的对话记忆管理
- 防幻觉机制:自定义Prompt模板,确保回答准确性
🎫 工单系统
- 智能工单创建与流转管理
- 工单状态跟踪:待处理、处理中、已完成、已关闭
- 工单分配与优先级管理
- 工单统计与报表
💬 实时通信
- 基于WebSocket的即时消息推送
- 支持在线客服聊天
- 消息广播与群发功能
- 连接状态管理
👥 客户管理
- 完整的客户信息管理系统
- 客户标签与分组
- 客户画像与行为分析
- 坐席账号管理
技术架构
系统架构图
┌─────────────────────────────────────────────────────────────┐ │ 前端层 (Vue3) │ │ ai-cs-frontend │ └──────────────────────┬──────────────────────────────────────┘ │ HTTP/WebSocket ┌──────────────────────▼──────────────────────────────────────┐ │ 网关层 (Gateway) │ │ ai-cs-gateway :8080 │ │ 路由转发 | 负载均衡 | 鉴权 | 限流 │ └──┬──────────┬──────────┬──────────┬──────────┬─────────────┘ │ │ │ │ │ ▼ ▼ ▼ ▼ ▼ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ │基础服务│ │AI代理 │ │知识库 │ │工单服务│ │WebSocket│ │:9001 │ │:9002 │ │:9003 │ │:9004 │ │:9005 │ └────────┘ └────────┘ └────────┘ └────────┘ └────────┘ │ │ │ │ │ └──────────┴──────────┼──────────┴──────────┘ │ ┌──────────▼──────────┐ │ 公共模块 (Common) │ │ Feign API (API) │ └─────────────────────┘ │ ┌────────────────┼────────────────┐ ▼ ▼ ▼ ┌─────────┐ ┌──────────┐ ┌──────────┐ │ MySQL │ │ Redis │ │ Milvus │ │ 主数据库 │ │ 缓存 │ │向量数据库│ └─────────┘ └──────────┘ └──────────┘技术栈
后端技术:
- Java 17 + Spring Boot 3.2.0
- Spring Cloud Gateway(微服务网关)
- MyBatis Plus 3.5.5(ORM框架)
- MySQL 8.0+(关系型数据库)
- Redis 6.0+(缓存数据库)
- Milvus 2.x / Chroma(向量数据库)
- LangChain4j 0.32.0(Java版LLM应用框架)
- Ollama(本地大模型服务)
- WebSocket(实时通信)
前端技术:
- Vue 3.x(前端框架)
- Vite 4.x(构建工具)
- Element Plus(UI组件库)
- Axios(HTTP客户端)
- Vue Router 4.x(路由管理)
AI/ML技术:
- LLM集成(通义千问、ChatGLM等)
- RAG检索增强生成
- Embedding向量化(nomic-embed-text)
- 重排模型(BGE-Reranker)
模块介绍
核心服务模块
| 模块 | 端口 | 职责 |
|---|---|---|
| ai-cs-gateway | 8080 | API网关、路由转发、鉴权、限流 |
| ai-cs-base-service | 9001 | 客户管理、坐席管理、会话管理 |
| ai-cs-ai-agent | 9002 | AI对话、意图识别、LLM调用 |
| ai-cs-knowledge | 9003 | 知识库管理、RAG检索、向量存储 |
| ai-cs-workorder | 9004 | 工单管理、工单流转 |
| ai-cs-websocket | 9005 | 实时通信、消息推送 |
| ai-cs-job | - | 定时任务、数据统计 |
公共模块
- ai-cs-common:通用工具类、常量、DTO、异常处理、统一返回结果封装
- ai-cs-api:Feign客户端接口定义、服务间通信DTO
前端应用
- ai-cs-frontend:Vue3 + Element Plus用户界面,包含聊天、客户管理、知识库、工单管理等页面
RAG系统详解
RAG工作流程
用户提问 ↓ 文本向量化(Embedding) ↓ 向量相似度检索(Chroma/Milvus) ↓ Rerank重排优化(BGE-Reranker) ↓ 检索相关文档片段 ↓ 构建Prompt(包含检索到的上下文) ↓ LLM生成答案 ↓ 返回用户RAG核心配置
rag:ollama:base-url:http://localhost:11434llm-model:qwen:7b# 对话模型embedding-model:nomic-embed-text# 向量模型rerank-model:bge-reranker:latest# 重排模型temperature:0.1chroma:base-url:http://localhost:8000collection-name:private_knowledge_basesplit:chunk-size:500# 文本切片大小chunk-overlap:80# 切片重叠字符数retrieve:top-k:5# 初次检索返回数量rerank-top-k:3# 重排后保留数量chat-memory:ttl:604800# 对话记忆过期时间(7天)RAG API接口
POST /api/rag/upload/pdf- 上传PDF文档入库POST /api/rag/upload/file- 上传普通文件入库POST /api/rag/chat- 智能问答(支持多轮对话)POST /api/rag/memory/clear/user- 清空单用户记忆POST /api/rag/memory/clear/all- 清空全部记忆
文档版本管理(新增功能)
系统新增了文档版本管理功能,支持文档的版本跟踪、回退和对比:
核心功能
- 版本创建:每次上传文档自动创建新版本记录
- 版本查询:查看文档的所有历史版本
- 版本回退:一键回退到任意历史版本
- 版本对比:基于MD5和文件大小对比版本差异
- 内容去重:通过MD5检测重复文档
版本管理API
GET /api/document/version/list- 获取所有文档列表GET /api/document/version/versions/{documentId}- 获取文档的所有版本POST /api/document/version/rollback- 回退到指定版本DELETE /api/document/version/delete/{id}- 删除指定版本GET /api/document/version/compare- 比较两个版本
快速开始
环境要求
- JDK 17+
- Maven 3.6+
- MySQL 8.0+
- Redis 6.0+
- Node.js 16+(前端开发)
- Ollama(RAG功能)
- Chroma/Milvus(向量数据库)
启动步骤
- 克隆项目
gitclone https://gitee.com/huangrenhui/ai-cs-parent.gitcdai-cs-parent- 初始化数据库
CREATEDATABASEai_cs_dbCHARACTERSETutf8mb4COLLATEutf8mb4_unicode_ci;mysql-u root-p ai_cs_db<docs/database/init.sql- 启动RAG前置服务
# 拉取Ollama模型ollama pull qwen:7b ollama pull nomic-embed-text ollama pull bge-reranker:latest# 启动Chromachroma run--path./chroma-db- 编译项目
mvn cleaninstall-DskipTests- 启动后端服务
# 按顺序启动各微服务cdai-cs-gateway&&mvn spring-boot:runcdai-cs-base-service&&mvn spring-boot:runcdai-cs-ai-agent&&mvn spring-boot:runcdai-cs-knowledge&&mvn spring-boot:runcdai-cs-workorder&&mvn spring-boot:runcdai-cs-websocket&&mvn spring-boot:run- 启动前端服务
cdai-cs-frontendnpminstallnpmrun dev应用场景
1. 企业客服中心
- 7x24小时智能问答,减少人工客服压力
- 知识库自动更新,保持信息同步
- 工单智能分配,提高处理效率
2. 技术支持系统
- 技术文档智能检索
- 问题自动诊断与解决方案推荐
- 多轮对话引导问题解决
3. 内部知识管理
- 企业文档集中管理
- 智能搜索与问答
- 版本控制与历史追溯
4. 在线教育平台
- 课程资料智能检索
- 学习问题智能解答
- 个性化学习路径推荐
项目亮点
1. 微服务架构
- 服务独立部署,易于扩展
- 故障隔离,提高系统可用性
- 技术栈灵活,便于技术升级
2. RAG技术落地
- 结合向量检索与大语言模型
- 两阶段检索优化,提升准确率
- 支持多种文档格式,适用性广
3. 文档版本管理
- 完整的版本追溯机制
- 一键回退,降低运维成本
- MD5去重,避免重复存储
4. 多用户会话隔离
- 基于Redis的对话记忆管理
- 支持多用户并发访问
- 会话过期自动清理
5. 高可扩展性
- 支持水平扩展
- 无状态服务设计
- 可集成消息队列解耦
部署架构
开发环境
本地运行各微服务,使用localhost访问生产环境(推荐)
┌─────────────┐ │ Nginx LB │ └──────┬──────┘ │ ┌────────────┼────────────┐ │ │ │ ┌─────▼─────┐ ┌───▼────┐ ┌────▼─────┐ │ Gateway 1 │ │ GW 2 │ │ GW 3 │ └─────┬─────┘ └───┬────┘ └────┬─────┘ │ │ │ └────────────┼────────────┘ │ ┌────────────┼────────────┐ │ │ │ │ 各微服务集群 Redis集群 MySQL主从 Milvus/Chroma集群安全设计
- 网关鉴权:所有请求经过网关进行身份验证
- 密码加密:坐席密码使用BCrypt加密存储
- HTTPS:生产环境使用HTTPS协议
- SQL注入防护:使用MyBatis Plus参数化查询
- XSS防护:前端输入过滤和转义
- CSRF防护:Token验证机制
性能优化
- Redis缓存:热点数据缓存,减少数据库查询
- 数据库索引:合理设计索引,优化查询性能
- 连接池:使用HikariCP数据库连接池
- 异步处理:耗时操作异步执行
- 分页查询:大数据量使用分页
- 向量检索优化:Milvus索引加速相似度搜索
监控与日志
- Spring Boot Actuator:健康检查和指标监控
- 日志收集:统一日志格式,支持ELK分析
- 链路追踪:集成Sleuth/Zipkin(可选)
- 告警机制:关键指标异常告警
项目地址
- gitee: https://gitee.com/huangrenhui/ai-cs-parent.git
- 维护者: huangrenhui
- 许可证: MIT License
总结
AI智能客服系统是一个功能完善、架构合理的企业级智能客服解决方案。通过集成RAG技术、文档版本管理等先进功能,为企业提供了从传统客服到智能问答的完整升级路径。项目采用微服务架构,具备高可扩展性和高可用性,适合各种规模的客服场景。
无论是企业客服中心、技术支持系统,还是内部知识管理平台,该系统都能提供强大的智能问答能力和完善的管理功能,帮助企业提升客服效率,降低运营成本。
欢迎Star、Fork和贡献代码!