baodan/BAODANAGENT_DEPLOY.md

249 lines
6.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 🚀 保单智能客服系统 — 部署指南
## 系统架构
```
┌─────────────────────────────────────────┐
│ 保单智能客服系统 │
├─────────────────────────────────────────┤
│ 前端 (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
**推荐场景**: 独立部署、资源受限环境、微服务架构