440 lines
10 KiB
Markdown
440 lines
10 KiB
Markdown
# 智能客服系统开发计划文档
|
||
|
||
## 1. 项目概述
|
||
|
||
### 1.1 项目目标
|
||
基于 Eino Framework + Kratos 架构,开发一个具备智能意图识别、RAG知识库查询、订单诊断和实时监控的智能客服系统后端API服务。
|
||
|
||
### 1.2 技术栈
|
||
- **后端框架**: Eino Framework + Kratos
|
||
- **AI模型**: Ollama (qwen3:8b + deepseek-v3.1)
|
||
- **数据存储**: SQLite + Redis + ChromaDB
|
||
- **监控**: Coze-Loop
|
||
- **部署**: Docker Compose
|
||
|
||
## 2. 敏捷开发阶段规划
|
||
|
||
### 阶段划分原则
|
||
- 每个阶段都有独立的交付物和验证标准
|
||
- 按技术依赖和业务价值排序
|
||
- 支持快速迭代和反馈
|
||
- 风险前置,核心功能优先
|
||
|
||
## 3. 开发阶段详细规划
|
||
|
||
### 🚀 阶段1:基础框架集成 (2-3天)
|
||
|
||
**目标**: 建立项目基础架构,集成核心框架
|
||
|
||
**开发内容**:
|
||
- Eino Framework 集成到 Kratos 项目
|
||
- 基础配置文件和环境设置
|
||
- Docker Compose 服务编排
|
||
- 基础 API 路由和中间件
|
||
- 健康检查接口
|
||
|
||
**交付物**:
|
||
- 可启动的 Kratos + Eino 服务
|
||
- Docker Compose 配置文件
|
||
- 基础配置文件模板
|
||
- `/api/system/status` 健康检查接口
|
||
|
||
**验证标准**:
|
||
- [ ] 服务能正常启动在8302端口
|
||
- [ ] Docker Compose 能拉起所有依赖服务
|
||
- [ ] 健康检查接口返回正常状态
|
||
- [ ] 基础日志和监控能正常工作
|
||
|
||
**技术风险**:
|
||
- Eino Framework 与 Kratos 的集成兼容性
|
||
- Docker 服务间网络通信配置
|
||
|
||
---
|
||
|
||
### 💬 阶段2:核心聊天功能 (3-4天)
|
||
|
||
**目标**: 实现基础聊天对话和SSE流式响应
|
||
|
||
**开发内容**:
|
||
- 聊天会话管理 (SQLite)
|
||
- 基础对话API接口
|
||
- SSE (Server-Sent Events) 流式响应
|
||
- Ollama 模型调用集成
|
||
- 消息存储和会话管理
|
||
|
||
**交付物**:
|
||
- `/api/chat` POST 接口 (SSE流式响应)
|
||
- `/api/sessions` GET/POST 接口
|
||
- 会话数据存储 (SQLite)
|
||
- 基础对话功能
|
||
|
||
**验证标准**:
|
||
- [ ] 能创建和管理聊天会话
|
||
- [ ] 支持SSE流式消息推送
|
||
- [ ] 能调用Ollama模型生成回复
|
||
- [ ] 消息历史正确存储和检索
|
||
|
||
**技术风险**:
|
||
- SSE 长连接稳定性
|
||
- Ollama 模型调用延迟和错误处理
|
||
|
||
---
|
||
|
||
### 🧠 阶段3:AI智能功能 (4-5天)
|
||
|
||
**目标**: 实现智能意图识别和多模型调用
|
||
|
||
**开发内容**:
|
||
- 意图识别服务 (qwen3:8b)
|
||
- 多模型调用管理
|
||
- 对话上下文管理
|
||
- AI成本统计和监控
|
||
- 智能路由逻辑
|
||
|
||
**交付物**:
|
||
- 意图识别服务
|
||
- 多模型调用框架
|
||
- AI成本统计功能
|
||
- 智能对话路由
|
||
|
||
**验证标准**:
|
||
- [ ] 能准确识别用户意图 (订单查询/知识库查询/闲聊)
|
||
- [ ] 根据意图选择合适的处理流程
|
||
- [ ] AI调用成本能正确统计
|
||
- [ ] 支持上下文相关的多轮对话
|
||
|
||
**技术风险**:
|
||
- 意图识别准确率
|
||
- 多模型调用的性能优化
|
||
|
||
---
|
||
|
||
### 📚 阶段4:知识库系统 (4-5天)
|
||
|
||
**目标**: 实现RAG知识库查询和文档管理
|
||
|
||
**开发内容**:
|
||
- 文档上传和解析 (Word/TXT)
|
||
- 文档分块和向量化 (ChromaDB)
|
||
- RAG 检索和生成
|
||
- 知识库管理接口
|
||
- 相似度搜索优化
|
||
|
||
**交付物**:
|
||
- `/api/knowledge/upload` 文档上传接口
|
||
- `/api/knowledge/list` 知识库列表接口
|
||
- `/api/knowledge/{id}` 文档删除接口
|
||
- RAG 查询集成到聊天功能
|
||
|
||
**验证标准**:
|
||
- [ ] 支持Word和TXT文档上传
|
||
- [ ] 文档能正确分块和向量化存储
|
||
- [ ] RAG检索能返回相关知识
|
||
- [ ] 知识库查询集成到对话流程
|
||
|
||
**技术风险**:
|
||
- 文档解析的准确性
|
||
- 向量检索的相关性和性能
|
||
|
||
---
|
||
|
||
### 🔍 阶段5:订单诊断与监控集成 (3-4天)
|
||
|
||
**目标**: 实现订单诊断功能和完整监控
|
||
|
||
**开发内容**:
|
||
- 订单查询API (Mock数据)
|
||
- 订单问题智能诊断
|
||
- Coze-Loop 监控集成
|
||
- 性能指标收集
|
||
- 完整的API文档
|
||
|
||
**交付物**:
|
||
- `/api/order/query` 订单查询接口
|
||
- 订单智能诊断功能
|
||
- Coze-Loop 监控面板
|
||
- `/api/analytics/*` 统计接口
|
||
- 完整的API接口文档
|
||
|
||
**验证标准**:
|
||
- [ ] 订单查询能返回Mock数据
|
||
- [ ] 能基于订单信息进行智能诊断
|
||
- [ ] Coze-Loop 能收集和展示监控数据
|
||
- [ ] 所有API接口文档完整
|
||
|
||
**技术风险**:
|
||
- Coze-Loop 集成复杂度
|
||
- 监控数据的准确性和实时性
|
||
|
||
## 4. 开发排期
|
||
|
||
```mermaid
|
||
gantt
|
||
title 智能客服系统开发排期
|
||
dateFormat YYYY-MM-DD
|
||
section 阶段1
|
||
基础框架集成 :a1, 2025-01-16, 3d
|
||
section 阶段2
|
||
核心聊天功能 :a2, after a1, 4d
|
||
section 阶段3
|
||
AI智能功能 :a3, after a2, 5d
|
||
section 阶段4
|
||
知识库系统 :a4, after a3, 5d
|
||
section 阶段5
|
||
订单诊断监控 :a5, after a4, 4d
|
||
```
|
||
|
||
**总开发周期**: 约 3-4 周 (21个工作日)
|
||
|
||
**关键里程碑**:
|
||
- 第1周末: 基础框架 + 聊天功能完成
|
||
- 第2周末: AI智能功能完成
|
||
- 第3周末: 知识库系统完成
|
||
- 第4周末: 完整系统交付
|
||
|
||
## 5. Mock数据设计
|
||
|
||
### 5.1 订单测试数据 (3条)
|
||
|
||
```json
|
||
[
|
||
{
|
||
"order_id": "ORD20250115001",
|
||
"status": "已发货",
|
||
"need_ai": true,
|
||
"details": {
|
||
"product": "iPhone 15 Pro Max 256GB 深空黑色",
|
||
"amount": 9999.00,
|
||
"create_time": "2025-01-10T10:30:00Z",
|
||
"shipping_address": "北京市朝阳区xxx街道xxx号",
|
||
"tracking_number": "SF1234567890",
|
||
"estimated_delivery": "2025-01-18"
|
||
},
|
||
"issues": ["物流延迟", "用户催单"]
|
||
},
|
||
{
|
||
"order_id": "ORD20250114002",
|
||
"status": "退款处理中",
|
||
"need_ai": true,
|
||
"details": {
|
||
"product": "MacBook Air M2 13英寸 午夜色",
|
||
"amount": 8999.00,
|
||
"create_time": "2025-01-08T14:20:00Z",
|
||
"refund_reason": "商品质量问题",
|
||
"refund_amount": 8999.00,
|
||
"refund_status": "审核中"
|
||
},
|
||
"issues": ["质量投诉", "退款咨询"]
|
||
},
|
||
{
|
||
"order_id": "ORD20250113003",
|
||
"status": "已完成",
|
||
"need_ai": false,
|
||
"details": {
|
||
"product": "AirPods Pro 第二代",
|
||
"amount": 1899.00,
|
||
"create_time": "2025-01-05T09:15:00Z",
|
||
"delivery_time": "2025-01-12T16:30:00Z",
|
||
"rating": 5,
|
||
"review": "音质很棒,降噪效果出色"
|
||
},
|
||
"issues": []
|
||
}
|
||
]
|
||
```
|
||
|
||
### 5.2 知识库示例文档 (3个)
|
||
|
||
**文档1: 产品使用手册.docx**
|
||
```
|
||
内容预览: "iPhone 15 Pro Max 使用指南:1. 开机设置 2. Face ID配置 3. 相机功能详解 4. 电池优化建议 5. 常见问题解答..."
|
||
分块策略: 按功能模块分块,每块300-500字
|
||
```
|
||
|
||
**文档2: 售后服务政策.txt**
|
||
```
|
||
内容预览: "退换货政策:7天无理由退货,15天质量问题换货。保修政策:1年免费保修,人为损坏不在保修范围内..."
|
||
分块策略: 按政策类型分块,每块200-400字
|
||
```
|
||
|
||
**文档3: 常见问题解答.txt**
|
||
```
|
||
内容预览: "Q: 如何重置密码?A: 进入设置-账户安全-重置密码。Q: 物流查询方式?A: 订单详情页点击物流跟踪..."
|
||
分块策略: 按Q&A对分块,每个问答为一块
|
||
```
|
||
|
||
### 5.3 用户会话场景
|
||
|
||
**场景1: 订单咨询**
|
||
```
|
||
用户: "我的订单ORD20250115001什么时候能到?"
|
||
意图: 订单查询
|
||
处理: 调用订单API + AI诊断
|
||
```
|
||
|
||
**场景2: 知识库查询**
|
||
```
|
||
用户: "iPhone 15 Pro Max 怎么设置Face ID?"
|
||
意图: 知识库查询
|
||
处理: RAG检索 + 知识生成
|
||
```
|
||
|
||
**场景3: 闲聊对话**
|
||
```
|
||
用户: "你好,今天天气怎么样?"
|
||
意图: 闲聊
|
||
处理: 通用对话模型
|
||
```
|
||
|
||
## 6. Docker服务管理
|
||
|
||
### 6.1 Docker Compose 配置
|
||
|
||
```yaml
|
||
version: '3.8'
|
||
|
||
services:
|
||
# 智能客服后端服务
|
||
eino-customer-service:
|
||
build: .
|
||
ports:
|
||
- "8302:8302"
|
||
depends_on:
|
||
- redis
|
||
- chromadb
|
||
- coze-loop
|
||
environment:
|
||
- REDIS_URL=redis://redis:6379
|
||
- CHROMADB_URL=http://chromadb:8000
|
||
- OLLAMA_URL=http://host.docker.internal:11434
|
||
- COZE_LOOP_URL=http://coze-loop:8080
|
||
volumes:
|
||
- ./data:/app/data
|
||
- ./configs:/app/configs
|
||
networks:
|
||
- eino-network
|
||
|
||
# Redis 缓存服务
|
||
redis:
|
||
image: redis:7-alpine
|
||
ports:
|
||
- "6379:6379"
|
||
volumes:
|
||
- redis_data:/data
|
||
networks:
|
||
- eino-network
|
||
healthcheck:
|
||
test: ["CMD", "redis-cli", "ping"]
|
||
interval: 10s
|
||
timeout: 5s
|
||
retries: 3
|
||
|
||
# ChromaDB 向量数据库
|
||
chromadb:
|
||
image: chromadb/chroma:latest
|
||
ports:
|
||
- "8000:8000"
|
||
volumes:
|
||
- chromadb_data:/chroma/chroma
|
||
environment:
|
||
- CHROMA_SERVER_HOST=0.0.0.0
|
||
- CHROMA_SERVER_HTTP_PORT=8000
|
||
networks:
|
||
- eino-network
|
||
healthcheck:
|
||
test: ["CMD", "curl", "-f", "http://localhost:8000/api/v1/heartbeat"]
|
||
interval: 30s
|
||
timeout: 10s
|
||
retries: 3
|
||
|
||
# Coze-Loop 监控服务
|
||
coze-loop:
|
||
image: cozedev/coze-loop:latest
|
||
ports:
|
||
- "8080:8080"
|
||
environment:
|
||
- COZE_LOOP_PORT=8080
|
||
- COZE_LOOP_LOG_LEVEL=info
|
||
volumes:
|
||
- coze_loop_data:/app/data
|
||
networks:
|
||
- eino-network
|
||
healthcheck:
|
||
test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
|
||
interval: 30s
|
||
timeout: 10s
|
||
retries: 3
|
||
|
||
volumes:
|
||
redis_data:
|
||
chromadb_data:
|
||
coze_loop_data:
|
||
|
||
networks:
|
||
eino-network:
|
||
driver: bridge
|
||
```
|
||
|
||
### 6.2 服务启动顺序
|
||
|
||
1. **基础服务**: Redis, ChromaDB
|
||
2. **监控服务**: Coze-Loop
|
||
3. **应用服务**: eino-customer-service
|
||
|
||
### 6.3 健康检查策略
|
||
|
||
- **Redis**: `redis-cli ping`
|
||
- **ChromaDB**: HTTP heartbeat 接口
|
||
- **Coze-Loop**: HTTP health 接口
|
||
- **主服务**: `/api/system/status` 接口
|
||
|
||
## 7. 技术风险评估
|
||
|
||
### 7.1 高风险项
|
||
- **Eino Framework 集成**: 新框架,文档可能不完善
|
||
- **SSE 长连接**: 网络稳定性和资源管理
|
||
- **AI模型调用**: 延迟和错误处理
|
||
|
||
### 7.2 中风险项
|
||
- **ChromaDB 性能**: 向量检索性能优化
|
||
- **Docker 服务编排**: 服务间依赖和网络配置
|
||
|
||
### 7.3 低风险项
|
||
- **SQLite 数据存储**: 成熟技术,风险较低
|
||
- **Redis 缓存**: 标准配置,风险可控
|
||
|
||
## 8. 质量保证
|
||
|
||
### 8.1 测试策略
|
||
- **单元测试**: 核心业务逻辑覆盖率 > 80%
|
||
- **集成测试**: API接口功能验证
|
||
- **性能测试**: 并发和响应时间测试
|
||
|
||
### 8.2 代码质量
|
||
- **代码规范**: Go 标准代码规范
|
||
- **文档完整**: API文档和部署文档
|
||
- **错误处理**: 完善的错误处理和日志记录
|
||
|
||
## 9. 交付清单
|
||
|
||
### 9.1 代码交付
|
||
- [ ] 完整的 Go 项目代码
|
||
- [ ] Docker Compose 配置文件
|
||
- [ ] 配置文件模板和示例
|
||
|
||
### 9.2 文档交付
|
||
- [ ] API 接口文档
|
||
- [ ] 部署运维文档
|
||
- [ ] 开发者使用指南
|
||
|
||
### 9.3 测试交付
|
||
- [ ] 单元测试用例
|
||
- [ ] 集成测试脚本
|
||
- [ ] 性能测试报告
|
||
|
||
---
|
||
|
||
**项目负责人**: AI Assistant
|
||
**文档版本**: v1.0
|
||
**创建日期**: 2025-01-16
|
||
**更新日期**: 2025-01-16 |