249 lines
6.4 KiB
Markdown
249 lines
6.4 KiB
Markdown
|
|
# 🚀 保单智能客服系统 — 部署指南
|
|||
|
|
|
|||
|
|
## 系统架构
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
┌─────────────────────────────────────────┐
|
|||
|
|
│ 保单智能客服系统 │
|
|||
|
|
├─────────────────────────────────────────┤
|
|||
|
|
│ 前端 (Vue 3) → Nginx (8080) │
|
|||
|
|
│ 后端 (Flask) → Gunicorn (5001) │
|
|||
|
|
│ 数据库 (PostgreSQL) → PostgreSQL (5433)│
|
|||
|
|
│ 缓存 (Redis) → Redis (6380) │
|
|||
|
|
└─────────────────────────────────────────┘
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 快速部署
|
|||
|
|
|
|||
|
|
### Linux/Mac
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
chmod +x deploy-baodanagent.sh
|
|||
|
|
./deploy-baodanagent.sh
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Windows
|
|||
|
|
|
|||
|
|
```cmd
|
|||
|
|
deploy-baodanagent.bat
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 手动部署
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 1. 构建镜像
|
|||
|
|
docker compose -f docker-compose.baodanagent.yml build
|
|||
|
|
|
|||
|
|
# 2. 启动服务
|
|||
|
|
docker compose -f docker-compose.baodanagent.yml up -d
|
|||
|
|
|
|||
|
|
# 3. 查看日志
|
|||
|
|
docker compose -f docker-compose.baodanagent.yml logs -f
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 镜像大小
|
|||
|
|
|
|||
|
|
| 镜像 | 大小 | 说明 |
|
|||
|
|
|------|------|------|
|
|||
|
|
| baodanagent-api | ~200MB | 后端 API |
|
|||
|
|
| baodanagent-web | ~50MB | 前端 Nginx |
|
|||
|
|
| pgvector/pgvector:pg15 | ~300MB | 数据库 |
|
|||
|
|
| redis:7-alpine | ~30MB | 缓存 |
|
|||
|
|
| **总计** | **~580MB** | 比 Dify 版节省 17GB |
|
|||
|
|
|
|||
|
|
## 访问地址
|
|||
|
|
|
|||
|
|
| 服务 | 地址 | 说明 |
|
|||
|
|
|------|------|------|
|
|||
|
|
| 前端应用 | http://localhost:8080 | Vue 3 前端 |
|
|||
|
|
| 后端 API | http://localhost:5001 | Flask 后端 |
|
|||
|
|
| 数据库 | localhost:5433 | PostgreSQL |
|
|||
|
|
| 缓存 | localhost:6380 | Redis |
|
|||
|
|
|
|||
|
|
## 数据库信息
|
|||
|
|
|
|||
|
|
- **主机**: localhost:5433
|
|||
|
|
- **数据库**: baodan
|
|||
|
|
- **用户名**: postgres
|
|||
|
|
- **密码**: taiyi1224
|
|||
|
|
|
|||
|
|
## API 接口
|
|||
|
|
|
|||
|
|
### 健康检查
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl http://localhost:5001/health
|
|||
|
|
# 返回: {"status": "ok", "service": "baodanagent-api"}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 认证接口
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 登录
|
|||
|
|
curl -X POST http://localhost:5001/insurance/auth/login \
|
|||
|
|
-H "Content-Type: application/json" \
|
|||
|
|
-d '{"username": "admin", "password": "admin123"}'
|
|||
|
|
|
|||
|
|
# 注册
|
|||
|
|
curl -X POST http://localhost:5001/insurance/auth/register \
|
|||
|
|
-H "Content-Type: application/json" \
|
|||
|
|
-d '{"username": "test", "password": "test123", "name": "测试用户"}'
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 对话接口
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 发送消息
|
|||
|
|
curl -X POST http://localhost:5001/insurance/chat/send \
|
|||
|
|
-H "Content-Type: application/json" \
|
|||
|
|
-H "Authorization: Bearer <token>" \
|
|||
|
|
-d '{"message": "我想买保险"}'
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 常用命令
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 查看服务状态
|
|||
|
|
docker compose -f docker-compose.baodanagent.yml ps
|
|||
|
|
|
|||
|
|
# 查看日志
|
|||
|
|
docker compose -f docker-compose.baodanagent.yml logs -f
|
|||
|
|
|
|||
|
|
# 查看特定服务日志
|
|||
|
|
docker compose -f docker-compose.baodanagent.yml logs -f baodanagent-api
|
|||
|
|
|
|||
|
|
# 停止服务
|
|||
|
|
docker compose -f docker-compose.baodanagent.yml down
|
|||
|
|
|
|||
|
|
# 重启服务
|
|||
|
|
docker compose -f docker-compose.baodanagent.yml restart
|
|||
|
|
|
|||
|
|
# 停止并删除数据
|
|||
|
|
docker compose -f docker-compose.baodanagent.yml down -v
|
|||
|
|
|
|||
|
|
# 进入容器
|
|||
|
|
docker compose -f docker-compose.baodanagent.yml exec baodanagent-api bash
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 配置说明
|
|||
|
|
|
|||
|
|
### 环境变量
|
|||
|
|
|
|||
|
|
在 `.env` 文件中配置:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# JWT 密钥
|
|||
|
|
JWT_SECRET=your-jwt-secret
|
|||
|
|
|
|||
|
|
# Dify 对接(可选)
|
|||
|
|
DIFY_BASE_URL=http://dify-api:5001
|
|||
|
|
DIFY_CHAT_APP_API_KEY=app-xxx
|
|||
|
|
DIFY_WORKFLOW_APP_API_KEY=app-xxx
|
|||
|
|
|
|||
|
|
# 企微配置(可选)
|
|||
|
|
WECOM_CORP_ID=your_corp_id
|
|||
|
|
WECOM_SECRET=your_secret
|
|||
|
|
WECOM_TOKEN=your_token
|
|||
|
|
WECOM_AES_KEY=your_aes_key
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 数据库初始化
|
|||
|
|
|
|||
|
|
数据库会在首次启动时自动初始化,执行 `deploy/sql/init.sql` 中的建表语句。
|
|||
|
|
|
|||
|
|
## 故障排查
|
|||
|
|
|
|||
|
|
### 端口冲突
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 检查端口占用
|
|||
|
|
netstat -tulpn | grep -E ':(5001|8080|5433|6380)'
|
|||
|
|
|
|||
|
|
# 修改端口映射
|
|||
|
|
# 编辑 docker-compose.baodanagent.yml
|
|||
|
|
ports:
|
|||
|
|
- "5002:5001" # 将 5001 改为 5002
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 服务启动失败
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 查看详细日志
|
|||
|
|
docker compose -f docker-compose.baodanagent.yml logs baodanagent-api
|
|||
|
|
|
|||
|
|
# 重启服务
|
|||
|
|
docker compose -f docker-compose.baodanagent.yml restart
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 数据库连接失败
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 检查数据库状态
|
|||
|
|
docker compose -f docker-compose.baodanagent.yml exec db pg_isready -U postgres
|
|||
|
|
|
|||
|
|
# 查看数据库日志
|
|||
|
|
docker compose -f docker-compose.baodanagent.yml logs db
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 文件清单
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
baodanagent/
|
|||
|
|
├── docker-compose.baodanagent.yml # Docker Compose 配置
|
|||
|
|
├── Dockerfile.backend # 后端 Dockerfile
|
|||
|
|
├── Dockerfile.frontend # 前端 Dockerfile
|
|||
|
|
├── nginx.conf # Nginx 配置
|
|||
|
|
├── deploy-baodanagent.sh # Linux/Mac 部署脚本
|
|||
|
|
├── deploy-baodanagent.bat # Windows 部署脚本
|
|||
|
|
├── BAODANAGENT_DEPLOY.md # 本文档
|
|||
|
|
├── api/insurance/ # 后端代码
|
|||
|
|
│ ├── app.py # Flask 应用入口
|
|||
|
|
│ ├── requirements.txt # Python 依赖
|
|||
|
|
│ ├── routes.py # 路由注册
|
|||
|
|
│ ├── db/ # 数据库模块
|
|||
|
|
│ ├── models/ # 数据模型
|
|||
|
|
│ ├── auth/ # 认证模块
|
|||
|
|
│ ├── chat/ # 对话模块
|
|||
|
|
│ ├── recommend/ # 推荐模块
|
|||
|
|
│ ├── kb/ # 知识库模块
|
|||
|
|
│ ├── admin/ # 管理模块
|
|||
|
|
│ ├── stats/ # 统计模块
|
|||
|
|
│ └── wecom/ # 企微模块
|
|||
|
|
├── frontend/ # 前端代码
|
|||
|
|
│ ├── src/ # 源码
|
|||
|
|
│ └── dist/ # 构建产物
|
|||
|
|
└── deploy/sql/ # SQL 初始化脚本
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 环境要求
|
|||
|
|
|
|||
|
|
- Docker 20.10+
|
|||
|
|
- Docker Compose 2.0+
|
|||
|
|
- 磁盘空间:1GB+
|
|||
|
|
- 内存:2GB+
|
|||
|
|
|
|||
|
|
## 与 Dify 版本的区别
|
|||
|
|
|
|||
|
|
| 特性 | 保单容器版 | Dify 版 |
|
|||
|
|
|------|-----------|---------|
|
|||
|
|
| 镜像大小 | ~580MB | ~17.5GB |
|
|||
|
|
| 部署时间 | 2 分钟 | 15 分钟 |
|
|||
|
|
| 功能范围 | 自研功能 | 全部功能 |
|
|||
|
|
| 知识库 | 需对接 Dify | 内置 |
|
|||
|
|
| 模型调用 | 需对接 Dify | 内置 |
|
|||
|
|
| 适用场景 | 独立部署 | 完整系统 |
|
|||
|
|
|
|||
|
|
## 下一步
|
|||
|
|
|
|||
|
|
1. **访问前端**:http://localhost:8080
|
|||
|
|
2. **测试 API**:http://localhost:5001/health
|
|||
|
|
3. **配置 Dify 对接**:编辑 `.env` 文件
|
|||
|
|
4. **配置企微**:编辑 `.env` 文件
|
|||
|
|
5. **上传知识库**:通过 API 或对接 Dify
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
**部署时间**: ~2 分钟
|
|||
|
|
**镜像大小**: ~580MB
|
|||
|
|
**推荐场景**: 独立部署、资源受限环境、微服务架构
|