5.8 KiB
5.8 KiB
指摘管理系统(IMS)
基于 AI Agent 驱动的质量问题全生命周期管理系统。
技术栈
| 层级 | 技术选型 |
|---|---|
| 前端 | React 19 + TypeScript + Vite + Ant Design 6 |
| 后端 | Java 17 + Spring Boot 3.5 + Spring Security |
| 数据库 | PostgreSQL 16 + pgvector |
| 缓存 | Redis 7 |
| 对象存储 | MinIO |
| AI 引擎 | Ollama(本地,默认)/ DeepSeek API(备选) |
目录结构
├── backend/ 后端(Maven 多模块)
│ ├── ims-common/ 公共模块(工具类、统一返回结构)
│ ├── ims-api/ API 模块(Controller 定义、DTO)
│ ├── ims-service/ 业务模块(Entity、Repository、Security)
│ └── ims-web/ Web 启动模块
├── frontend/ 前端(Vite + React)
├── docs/ 设计文档
└── docker-compose.yml 数据库层(PostgreSQL + Redis + MinIO)
快速启动
说明:数据库(PostgreSQL/Redis/MinIO)运行在 Docker 中,Docker 在 WSL2 (Ubuntu) 里。后端必须在 WSL2 里运行,前端可在 Windows 运行。
┌─────────────────────────────────────────────┐
│ Windows │
│ ├─ WSL2 (Ubuntu) — Docker 数据库 │
│ ├─ WSL2 (Ubuntu) — 后端 (Spring Boot 8080) │
│ └─ Windows — 前端 (Vite 5173) │
└─────────────────────────────────────────────┘
环境要求
| 组件 | 版本要求 | 安装确认 |
|---|---|---|
| Java | 17+ | java -version |
| Maven | 3.8+ | mvn -version |
| Node.js | 18+ | node -v |
| npm | 9+ | npm -v |
| Docker | 24+ | docker --version |
| Docker Compose | V2 | docker compose version |
| WSL2 (Ubuntu) | 22.04+ | wsl -l -v |
准备工作(只需做一次)
1. 启动基础设施(PostgreSQL + Redis + MinIO + Ollama)
Ollama 作为 Docker 容器运行,无需单独安装。首次执行以下命令时,Docker 会自动从镜像仓库拉取所有服务。
在 WSL2 (Ubuntu) 终端执行:
# 停掉 WSL2 自带的 Redis(避免端口冲突)
sudo systemctl stop redis-server 2>/dev/null
# 进入项目目录(注意:你的项目路径可能不同,按实际修改)
cd /path/to/ims-master-test
# 启动所有基础设施(含 Ollama)
docker compose up -d
# 确认所有容器正常运行
docker compose ps
2. 初始化 MinIO Bucket(知识库上传需要)
- 浏览器打开 http://localhost:9001
- 账号:
minioadmin/ 密码:minioadmin - 左侧 Buckets → Create Bucket → 输入
ims-attachments→ 确认
3. 拉取 AI 模型(仅第一次需要)
Ollama 容器启动时不包含任何模型,需要手动拉取。拉取的模型保存在 Docker 数据卷 ollama_data 中,后续重启容器无需重新拉取。
第一次启动顺序:
# 1. 启动所有服务(含 Ollama 容器)
docker compose up -d
# 2. 拉取向量化模型(知识库检索需要)
docker exec ims-ollama ollama pull nomic-embed-text
# 3. 拉取对话模型(AI Agent 分析需要)
docker exec ims-ollama ollama pull llama3.1:8b
# 4. 确认模型已拉取
docker exec ims-ollama ollama list
后续启动: 只需执行 docker compose up -d,之前拉取的模型自动可用,无需再执行 docker exec ollama pull。
模型文件较大(
llama3.1:8b约 4.9GB),拉取时间取决于网络,看到success即完成。
启动项目
需要同时开两个终端:
终端 1 — WSL2 (Ubuntu):启动后端
# 进入后端目录(路径按实际修改)
cd /path/to/ims-master-test/backend
# 首次或改过代码后执行(编译打包)
mvn install -DskipTests -U
# 启动后端
cd ims-web && mvn spring-boot:run -Dspring-boot.run.profiles=dev
首次启动会下载大量依赖,可能需要几分钟。看到
Started IMSApplication即启动成功。
终端 2 — Windows PowerShell(或 WSL):启动前端
cd /path/to/ims-master-test/frontend
# 首次或改过 package.json 后执行
npm install
# 启动前端
npm run dev
看到
VITE v6.x.x ready in xxx ms即启动成功。
登录系统
浏览器访问 http://localhost:5173,使用以下账号登录:
| 账号 | 密码 | 角色 |
|---|---|---|
| admin | Admin@2026 | 超级管理员 |
验证启动是否正常
登录后:
- 左侧菜单→工作台,页面正常显示即前后端通
- 左侧菜单→知识库管理,页面能正常打开
- 尝试上传一个
.txt文件,状态变为completed即全链路正常
常见问题
| 问题 | 原因 | 解决 |
|---|---|---|
| 端口 6379 被占用 | WSL2 自带的 Redis 在运行 | sudo systemctl stop redis-server |
| 数据库连接失败 | 容器未就绪 | docker compose ps 检查,等几秒后再试 |
| MinIO bucket 不存在 | 未创建 | 打开 http://localhost:9001 创建 ims-attachments |
| Ollama 连不上 | Ollama 容器未运行或未就绪 | docker compose ps 检查 ollama 状态,docker logs ims-ollama 查看日志 |
| mvn: command not found | Java/Maven 未安装 | sudo apt install openjdk-17-jdk maven -y |
| npm: command not found | Node.js 未安装 | 从 nodejs.org 下载安装 |
| Token 过期 403/跳登录 | 超过 30 分钟未操作 | 自动刷新 token,重新登录即可 |
| 上传文件报 500 | 依赖版本冲突 | 执行 mvn install -DskipTests -U 后重启 |
分支说明
master— 项目骨架,各组基于此分支创建功能分支- 各功能模块在独立分支上开发,完成后合并回 master