基于 Laravel AI SDK 的全功能智能客服系统,支持 AI 自动回复、实时通信、知识库 RAG、工单流转、客服工作台。
# 克隆到插件目录
cd plugins
git clone git@innoshop.work:splugins/ServiceBot.git ServiceBot
php artisan migrate --path=plugins/ServiceBot/Database/migrations
迁移会创建以下数据表:
| 表名 | 说明 |
|---|---|
servicebot_conversations |
会话记录 |
servicebot_messages |
聊天消息 |
servicebot_tickets |
工单 |
servicebot_kb_categories |
知识库分类 |
servicebot_kb_articles |
知识库文章 |
servicebot_quick_replies |
快捷回复 |
servicebot_notes |
内部备注 |
servicebot_ratings |
满意度评价 |
进入 后台 → 插件管理,找到 ServiceBot,点击启用。
BROADCAST_CONNECTION=reverb
QUEUE_CONNECTION=redis
REVERB_APP_ID=servicebot
REVERB_APP_KEY=your-key
REVERB_APP_SECRET=your-secret
REVERB_HOST=127.0.0.1
REVERB_PORT=8080
REVERB_SCHEME=http
启动 Reverb 服务:
php artisan reverb:start
启动队列Worker:
php artisan queue:work redis --tries=3
进入 后台 → 客户 → 智能客服:
| 配置项 | 说明 | 默认值 |
|---|---|---|
enabled |
启用插件 | 关闭 |
ai_enabled |
启用 AI 自动回复 | 关闭 |
auto_escalation |
AI 无法回答时自动转人工 | 关闭 |
welcome_message |
客户首次打开聊天的欢迎语 | "Hello! How can I help you today?" |
ServiceBot 使用系统默认 AI 配置(不再需要独立 API Key)。在 后台 → 设置 → AI 工具 中配置:
插件启用后,前台页面自动注入右下角聊天气泡。访客点击即可开始对话:
ai_enabled)auto_escalation)进入 后台 → 客户 → 智能客服:
进入 后台 → 客户 → 智能客服 → 知识库:
| 方法 | 路径 | 说明 |
|---|---|---|
| POST | /api/servicebot/chat/conversations |
创建/获取会话 |
| GET | /api/servicebot/chat/conversations/{id} |
获取会话详情 |
| POST | /api/servicebot/chat/messages |
发送消息 |
| GET | /api/servicebot/chat/messages |
获取消息列表 |
| POST | /api/servicebot/chat/ratings |
提交满意度评价 |
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /panel/servicebot/conversations |
会话列表 |
| GET | /panel/servicebot/conversations/{id} |
会话详情 |
| POST | /panel/servicebot/conversations/{id}/claim |
接管会话 |
| POST | /panel/servicebot/conversations/{id}/close |
关闭会话 |
| POST | /panel/servicebot/conversations/{id}/transfer |
转接会话 |
| POST | /panel/servicebot/conversations/{id}/messages |
发送消息 |
| GET | /panel/servicebot/conversations/{id}/notes |
备注列表 |
| POST | /panel/servicebot/conversations/{id}/notes |
添加备注 |
| GET | /panel/servicebot/conversations/quick-replies |
快捷回复列表 |
| POST | /panel/servicebot/conversations/quick-replies |
创建快捷回复 |
| DELETE | /panel/servicebot/conversations/quick-replies/{id} |
删除快捷回复 |
| GET | /panel/servicebot/conversations/stats |
统计数据 |
| GET | /panel/servicebot/conversations/agents |
在线客服列表 |
Conversation (会话)
├── hasMany Message (消息)
├── hasMany Ticket (工单)
├── hasMany Note (内部备注)
├── hasOne Rating (满意度评价)
└── belongsTo Customer (客户)
KbCategory (知识库分类)
└── hasMany KbArticle (知识库文章)
QuickReply (快捷回复)
ServiceBot/
├── Boot.php # 插件启动引导
├── fields.php # 插件配置定义
├── Controllers/
│ ├── Admin/
│ │ ├── AgentController.php # 客服操作(接管/关闭)
│ │ ├── ConversationController.php# 会话管理
│ │ ├── KbController.php # 知识库管理
│ │ └── TicketController.php # 工单管理
│ └── Frontend/
│ └── ChatController.php # 前台聊天 API
├── Models/
│ ├── Conversation.php
│ ├── Message.php
│ ├── Ticket.php
│ ├── KbCategory.php
│ ├── KbArticle.php
│ ├── QuickReply.php
│ ├── Note.php
│ └── Rating.php
├── Services/
│ ├── AIService.php # AI 调用封装
│ ├── KbService.php # 知识库检索
│ └── TicketService.php # 工单逻辑
├── Jobs/
│ └── AIReplyJob.php # AI 异步回复(Queue Job)
├── Events/
│ ├── NewMessage.php # 新消息广播
│ ├── NewConversation.php # 新会话广播
│ ├── NewTicket.php # 新工单广播
│ ├── ConversationClaimed.php # 会话被接管广播
│ └── ConversationClosed.php # 会话关闭广播
├── Routes/
│ ├── root.php # 前台 API 路由
│ ├── panel.php # 后台管理路由
│ └── channels.php # WebSocket 频道
├── Public/
│ ├── js/
│ │ ├── chat-widget.js # 聊天窗口组件
│ │ ├── servicebot-widget.js # Widget 初始化
│ │ └── websocket.js # WebSocket 连接
│ └── css/
│ └── chat-widget.css # Widget 样式
├── Views/
│ ├── panel/ # 后台页面
│ └── admin/ # 管理页面
├── Database/
│ └── migrations/ # 数据库迁移
└── Resources/
└── lang/ # 多语言
访客发送消息
↓
ChatController::sendMessage()
↓
保存 Message 到数据库
↓
┌─ broadcast(NewMessage) → Reverb → 客服后台实时收到
│
└─ dispatch(AIReplyJob) → Queue
↓
AIReplyJob::handle()
↓
┌─ KbService::search() → 检索知识库相关内容
│
└─ CustomerServiceAgent → 调用 AI 生成回复
↓
保存 AI 回复 Message
↓
broadcast(NewMessage) → 前台 + 客服后台收到
↓
如果需要转人工 → 创建 Ticket + broadcast(NewTicket)
| Phase | 内容 | 状态 | 进度 |
|---|---|---|---|
| Phase 1 | 实时通信 + 前台 Widget + 客服后台 | ✅ 基本完成 | 95% |
| Phase 2 | AI 回复 + 知识库 RAG + 自动转人工 | ✅ 基本完成 | 90% |
| Phase 3 | 快捷回复 + 会话分配 + 满意度评价 | ✅ 基本完成 | 85% |
| Phase 4 | 数据报表(响应时间、AI 解决率、满意度) | ⬜ 未开始 | 5% |
✅ 已完成:
⬜ 待完善:
✅ 已完成:
⬜ 待完善:
✅ 已完成:
⬜ 待完善:
✅ 已完成:
⬜ 待开发:
OSL-3.0
Copyright (c) Since 2024 InnoShop - All Rights Reserved