Files
2026Technology-Competition/README.md
T

5.8 KiB
Raw Blame History

指摘管理系统(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(知识库上传需要)

  1. 浏览器打开 http://localhost:9001
  2. 账号:minioadmin / 密码:minioadmin
  3. 左侧 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 超级管理员

验证启动是否正常

登录后:

  1. 左侧菜单→工作台,页面正常显示即前后端通
  2. 左侧菜单→知识库管理,页面能正常打开
  3. 尝试上传一个 .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