6.4 KiB
6.4 KiB
🚀 保单智能客服系统 — 部署指南
系统架构
┌─────────────────────────────────────────┐
│ 保单智能客服系统 │
├─────────────────────────────────────────┤
│ 前端 (Vue 3) → Nginx (8080) │
│ 后端 (Flask) → Gunicorn (5001) │
│ 数据库 (PostgreSQL) → PostgreSQL (5433)│
│ 缓存 (Redis) → Redis (6380) │
└─────────────────────────────────────────┘
快速部署
Linux/Mac
chmod +x deploy-baodanagent.sh
./deploy-baodanagent.sh
Windows
deploy-baodanagent.bat
手动部署
# 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 接口
健康检查
curl http://localhost:5001/health
# 返回: {"status": "ok", "service": "baodanagent-api"}
认证接口
# 登录
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": "测试用户"}'
对话接口
# 发送消息
curl -X POST http://localhost:5001/insurance/chat/send \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <token>" \
-d '{"message": "我想买保险"}'
常用命令
# 查看服务状态
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 文件中配置:
# 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 中的建表语句。
故障排查
端口冲突
# 检查端口占用
netstat -tulpn | grep -E ':(5001|8080|5433|6380)'
# 修改端口映射
# 编辑 docker-compose.baodanagent.yml
ports:
- "5002:5001" # 将 5001 改为 5002
服务启动失败
# 查看详细日志
docker compose -f docker-compose.baodanagent.yml logs baodanagent-api
# 重启服务
docker compose -f docker-compose.baodanagent.yml restart
数据库连接失败
# 检查数据库状态
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 | 内置 |
| 适用场景 | 独立部署 | 完整系统 |
下一步
- 访问前端:http://localhost:8080
- 测试 API:http://localhost:5001/health
- 配置 Dify 对接:编辑
.env文件 - 配置企微:编辑
.env文件 - 上传知识库:通过 API 或对接 Dify
部署时间: ~2 分钟 镜像大小: ~580MB 推荐场景: 独立部署、资源受限环境、微服务架构