添加docker部署方式,优化目前项目结构,更新了readme文件

This commit is contained in:
赵杰
2025-09-22 16:36:50 +01:00
parent d6c88d87dd
commit 1e4376ba56
10 changed files with 850 additions and 32 deletions

209
README.md
View File

@@ -1,7 +1,8 @@
# TSP智能助手 (TSP Assistant)
[![Version](https://img.shields.io/badge/version-1.3.0-blue.svg)](version.json)
[![Python](https://img.shields.io/badge/python-3.8+-green.svg)](requirements.txt)
[![Version](https://img.shields.io/badge/version-2.0.0-blue.svg)](version.json)
[![Python](https://img.shields.io/badge/python-3.11+-green.svg)](requirements.txt)
[![Docker](https://img.shields.io/badge/docker-supported-blue.svg)](Dockerfile)
[![License](https://img.shields.io/badge/license-MIT-yellow.svg)](LICENSE)
[![Status](https://img.shields.io/badge/status-production-ready-brightgreen.svg)]()
@@ -42,11 +43,20 @@
│ 前端界面 │ │ 后端服务 │ │ 数据存储 │
│ │ │ │ │ │
│ • 仪表板 │◄──►│ • Flask API │◄──►│ • MySQL DB │
│ • 智能对话 │ │ • WebSocket │ │ • 知识库
│ • Agent管理 │ │ • Agent核心 │ │ • 工单系统
│ • 数据分析 │ │ • LLM集成 │ │ • 车辆数据
│ • 备份管理 │ │ • 备份系统 │ │ • SQLite备份
│ • 智能对话 │ │ • WebSocket │ │ • Redis缓存
│ • Agent管理 │ │ • Agent核心 │ │ • 知识库
│ • 数据分析 │ │ • LLM集成 │ │ • 工单系统
│ • 备份管理 │ │ • 备份系统 │ │ • 车辆数据
└─────────────────┘ └─────────────────┘ └─────────────────┘
┌─────────────────┐
│ 监控系统 │
│ │
│ • Prometheus │
│ • Grafana │
│ • Nginx代理 │
└─────────────────┘
```
## 🎯 核心功能
@@ -97,11 +107,12 @@
## 🛠️ 技术栈
### 后端技术
- **Python 3.8+**: 核心开发语言
- **Flask**: Web框架和API服务
- **SQLAlchemy**: ORM数据库操作
- **Python 3.11+**: 核心开发语言
- **Flask 2.3+**: Web框架和API服务
- **SQLAlchemy 2.0+**: ORM数据库操作
- **WebSocket**: 实时通信支持
- **psutil**: 系统资源监控
- **Redis**: 缓存和会话管理
### 前端技术
- **Bootstrap 5**: UI框架
@@ -114,21 +125,74 @@
- **TF-IDF**: 文本向量化
- **余弦相似度**: 语义相似度计算
- **Agent框架**: 智能任务规划
- **Transformers**: 预训练模型支持
### 部署运维
- **Docker**: 容器化部署
- **Docker Compose**: 多服务编排
- **Nginx**: 反向代理和静态文件服务
- **Systemd**: 服务管理
- **Git**: 版本控制
- **Prometheus**: 监控数据收集
- **Grafana**: 监控仪表板
- **MySQL 8.0**: 主数据库
- **Redis 7**: 缓存服务
## 🚀 快速开始
### 环境要求
- Python 3.8+
#### Docker部署推荐
- Docker 20.10+
- Docker Compose 2.0+
- 4GB+ 可用内存
- 10GB+ 可用磁盘空间
#### 本地部署
- Python 3.11+
- Node.js 16+ (可选,用于前端构建)
- MySQL 8.0+ 或 SQLite
- Redis 7+ (可选)
- Git
### 安装步骤
### 🐳 Docker部署推荐
1. **克隆项目**
```bash
git clone http://jeason.online:3000/zhaojie/assist.git
cd assist
```
2. **一键启动所有服务**
```bash
# 使用部署脚本
chmod +x scripts/docker_deploy.sh
./scripts/docker_deploy.sh start
# 或直接使用docker-compose
docker-compose up -d
```
3. **访问系统**
- **TSP助手**: http://localhost:5000
- **Nginx代理**: http://localhost
- **Prometheus监控**: http://localhost:9090
- **Grafana仪表板**: http://localhost:3000 (admin/admin123456)
4. **服务管理**
```bash
# 查看服务状态
./scripts/docker_deploy.sh status
# 查看日志
./scripts/docker_deploy.sh logs tsp-assistant
# 停止服务
./scripts/docker_deploy.sh stop
# 重启服务
./scripts/docker_deploy.sh restart
```
### 💻 本地部署
1. **克隆项目**
```bash
@@ -251,10 +315,11 @@ python scripts/update_manager.py auto-update --source ./new_version --environmen
## 🔧 配置说明
### 环境变量
### Docker环境变量
```bash
# 数据库配置
DATABASE_URL=sqlite:///tsp_assistant.db
DATABASE_URL=mysql+pymysql://tsp_user:tsp_password@mysql:3306/tsp_assistant?charset=utf8mb4
REDIS_URL=redis://redis:6379/0
# LLM配置
LLM_PROVIDER=openai
@@ -265,13 +330,35 @@ LLM_MODEL=gpt-3.5-turbo
SERVER_PORT=5000
WEBSOCKET_PORT=8765
LOG_LEVEL=INFO
TZ=Asia/Shanghai
```
### Docker服务配置
#### 主要服务
- **tsp-assistant**: 主应用服务 (端口: 5000, 8765)
- **mysql**: MySQL数据库 (端口: 3306)
- **redis**: Redis缓存 (端口: 6379)
- **nginx**: 反向代理 (端口: 80, 443)
#### 监控服务
- **prometheus**: 监控数据收集 (端口: 9090)
- **grafana**: 监控仪表板 (端口: 3000)
#### 数据卷
- `mysql_data`: MySQL数据持久化
- `redis_data`: Redis数据持久化
- `prometheus_data`: Prometheus数据持久化
- `grafana_data`: Grafana配置和数据持久化
### 配置文件
- `config/llm_config.py`: LLM客户端配置
- `config/integrations_config.json`: 飞书集成配置
- `update_config.json`: 更新管理器配置
- `version.json`: 版本信息配置
- `nginx.conf`: Nginx反向代理配置
- `monitoring/prometheus.yml`: Prometheus监控配置
- `init.sql`: 数据库初始化脚本
- `docker-compose.yml`: Docker服务编排配置
- `Dockerfile`: 应用镜像构建配置
## 🤝 贡献指南
@@ -290,6 +377,18 @@ LOG_LEVEL=INFO
## 📝 更新日志
### v2.0.0 (2025-09-22) - Docker环境全面升级
- 🐳 **Docker环境重构**: 升级到Python 3.11,优化镜像构建
- 🐳 **多服务编排**: MySQL 8.0 + Redis 7 + Nginx + Prometheus + Grafana
- 🐳 **监控系统**: 集成Prometheus监控和Grafana仪表板
- 🐳 **安全增强**: 非root用户运行数据卷隔离
- 🐳 **部署脚本**: 一键部署脚本,支持启动/停止/重启/清理
- 🔧 **知识库搜索修复**: 简化搜索算法,提升检索准确率
- 🔧 **批量删除优化**: 修复外键约束和缓存问题
- 🔧 **日志编码修复**: 解决中文乱码问题
- 📊 **可视化增强**: 修复预警、性能、满意度图表显示
- 📚 **文档更新**: 完整的Docker部署和使用指南
### v1.4.0 (2025-09-19)
- ✅ 飞书集成功能:支持飞书多维表格数据同步
- ✅ 页面功能合并:飞书同步页面合并到主仪表板
@@ -324,11 +423,87 @@ LOG_LEVEL=INFO
本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情
## 🔧 故障排除
### Docker部署问题
#### 常见问题
1. **端口冲突**
```bash
# 检查端口占用
netstat -tulpn | grep :5000
# 修改docker-compose.yml中的端口映射
```
2. **内存不足**
```bash
# 检查Docker资源使用
docker stats
# 增加Docker内存限制或关闭其他服务
```
3. **数据库连接失败**
```bash
# 检查MySQL服务状态
docker-compose logs mysql
# 等待数据库完全启动约30秒
```
4. **权限问题**
```bash
# 给脚本添加执行权限
chmod +x scripts/docker_deploy.sh
# 检查文件权限
ls -la scripts/
```
#### 日志查看
```bash
# 查看所有服务日志
docker-compose logs -f
# 查看特定服务日志
docker-compose logs -f tsp-assistant
docker-compose logs -f mysql
docker-compose logs -f redis
```
#### 服务重启
```bash
# 重启特定服务
docker-compose restart tsp-assistant
# 重启所有服务
docker-compose down && docker-compose up -d
```
### 性能优化
#### Docker资源限制
```yaml
# 在docker-compose.yml中添加资源限制
services:
tsp-assistant:
deploy:
resources:
limits:
memory: 2G
cpus: '1.0'
```
#### 数据库优化
```sql
-- MySQL性能优化
SET GLOBAL innodb_buffer_pool_size = 1G;
SET GLOBAL max_connections = 200;
```
## 📞 支持与联系
- **项目地址**: http://jeason.online:3000/zhaojie/assist
- **问题反馈**: 请在Issues中提交问题
- **功能建议**: 欢迎提交Feature Request
- **Docker问题**: 请提供docker-compose logs输出
## 🙏 致谢