本地化大模型驱动的企业运维 AI 数字员工 — 基于 Go + Vue 3 分层架构,自建 Go RAG 引擎(BM25 + pgvector 混合检索),支持智能问答、申告全流程、知识库管理和 RBAC 权限控制,完全私有部署。
| 模块 | 特性 |
|---|---|
| 🤖 智能问答 | 自建 RAG 管道(查询改写→多路检索→混合检索→重排序→LLM 生成),SSE 流式输出 |
| 📚 知识库 | 统一文章模型 + 审核发布 + 自动向量写入 pgvector + 多格式文档上传 |
| 🎫 申告管理 | 完整状态机(待处理→处理中→需补充→已解决/已关闭),站内消息通知 |
| 👥 用户权限 | JWT 认证 + RBAC 角色权限,菜单动态渲染,密码策略强制 |
| ⚙️ LLM 配置 | llama.cpp / OpenAI-compatible 双支持,热替换无需重启 |
| 📊 数据看板 | 实时统计卡片 + 趋势图,问答量/置信度一目了然 |
| 📝 审计日志 | 敏感操作全量记录,支持按操作类型/操作人筛选 |
| 🐳 一键部署 | Docker Compose 4 服务编排(+ 可选 llama.cpp) |
| 层级 | 技术 | 说明 |
|---|---|---|
| 后端框架 | Go 1.22+ / Gin 1.9+ | REST API + SSE 流式 |
| ORM | GORM v1.25+ | PostgreSQL 数据访问 + AutoMigrate |
| 数据库 | PostgreSQL 18 + pgvector | 业务数据 + HNSW 向量索引(halfvec) |
| RAG 引擎 | 自建 Go 模块(rag/) |
BM25 + 向量混合检索 + RRF 融合 + 重排序 |
| 中文分词 | gse(纯 Go) | BM25 分词,无 CGO 依赖 |
| LLM/Embedding | llama.cpp server 或 OpenAI-compatible API | 后台管理 UI 配置 |
| 对象存储 | MinIO | S3-compatible,文档 + 附件 |
| 认证 | JWT (golang-jwt v5) + bcrypt | access_token 2h + refresh_token 7d |
| 前端框架 | Vue 3.4+ / TypeScript | Composition API + script setup |
| UI 组件 | Naive UI + Radix Vue | Tree-shakable,暗色主题 |
| 状态管理 | Pinia 2.1+ | auth / chat / app 三个 store |
| 部署 | Docker Compose | 4 必须服务 + 1 可选 (llama.cpp) |
- Docker Desktop 4.x+(含 Docker Compose v2)
- 磁盘空间 ≥ 10 GB
- 内存 ≥ 8 GB
git clone https://github.com/int2t05/OpsMind.git
cd OpsMind
cp .env.example .env
# 编辑 .env,至少设置 JWT_SECRET 和 LLM_BASE_URL
make up等待约 1 分钟,访问:
- http://localhost:5173 — 前端
- http://localhost:8080 — 后端 API
- http://localhost:9001 — MinIO 控制台
OpsMind 的基础功能(认证、用户管理、申告管理)不依赖 AI 模型。智能问答和知识库检索需要 LLM + Embedding 服务。
| 方案 | 成本 | 延迟 | 数据隐私 | 配置难度 |
|---|---|---|---|---|
| 本地 llama.cpp | 免费 | 低 | ✅ 完全本地 | ⭐⭐⭐ |
| OpenAI API | 按量付费 | 中 | ❌ 上传云端 | ⭐ |
| DeepSeek / 其他兼容 API | 各异 | 各异 | 各异 | ⭐ |
配置方式:在 .env 中设置 LLM_BASE_URL / LLM_API_KEY / LLM_MODEL 等变量,或在后台管理「LLM 配置」页面管理。
加载演示数据后可用:
| 账号 | 密码 | 角色 |
|---|---|---|
admin |
Admin@123 |
系统管理员 |
operator1 |
Operator@123 |
运维人员 |
knowledge |
Knowledge@123 |
知识库管理员 |
reporter1 |
Reporter@123 |
报障人 |
docker compose exec -T postgres psql -U opsmind -d opsmind < server/migrations/seed.sqlOpsMind/
├── server/ # Go 后端
│ ├── cmd/main.go # 入口(DB→Repo→Service→Handler→Router→Scheduler)
│ ├── internal/
│ │ ├── config/ # Viper 配置管理
│ │ ├── database/ # GORM 连接 + AutoMigrate
│ │ ├── middleware/ # JWT / RBAC / CORS / Logger / RequestID
│ │ ├── router/ # Gin 路由(public / portal / admin)
│ │ ├── handler/ # Handler 层(10 模块 + common.go)
│ │ ├── service/ # Service 层(12 服务 + LLM 配置管理)
│ │ ├── repository/ # Repository 层(9 Repo + pagination.go)
│ │ ├── model/ # GORM 数据模型
│ │ ├── rag/ # RAG 引擎(Pipeline / BM25 / Hybrid / Rerank / Processor)
│ │ ├── adapter/ # 外部适配层(LLMClient / EmbeddingClient / VectorStore / StorageClient)
│ │ └── dto/ # 请求/响应 DTO
│ ├── pkg/ # 公共工具(errcode / jwt / hash / response)
│ ├── migrations/ # DDL + 演示数据
│ └── tests/ # 测试代码
│
├── web/ # Vue 3 前端
│ ├── src/
│ │ ├── api/ # Axios API 封装
│ │ ├── stores/ # Pinia 状态管理
│ │ ├── router/ # Vue Router + 路由守卫
│ │ ├── views/ # 页面(auth / admin / portal)
│ │ ├── components/ # 通用组件
│ │ └── utils/ # 工具函数
│ └── nginx.conf # Nginx 配置
│
├── test/ # Playwright API 集成测试(116 个)
├── docs/ # 项目文档
│ ├── PRD.md # 产品需求文档
│ ├── TECH.md # 技术架构文档
│ ├── API/ # REST API 接口文档(9 组)
│ ├── diagrams/ # 架构图(Mermaid)
│ └── prompts/ # 设计系统约束
├── docker-compose.yml # Docker 4 服务编排
├── Makefile # 构建和开发命令
└── CLAUDE.md # 项目上下文指令
# 后端
cd server
go build ./cmd/... # 编译
go run ./cmd/main.go # 运行
go test ./tests/... -v # 测试
# 前端
cd web
npm install && npm run dev # 开发 (localhost:5173)
npm run build # 生产构建
# Docker
docker compose up -d --build # 启动
docker compose --profile ai-local up -d --build # 含 llama.cpp
docker compose down # 停止
# API 集成测试
cd test && npm install && npm run test:auth && npm run test| 文档 | 说明 |
|---|---|
| PRD.md | 产品需求文档 |
| TECH.md | 技术架构文档 |
| API/ | REST API 接口文档(9 组) |
| diagrams/ | 架构图和数据流图 |
| CLAUDE.md | 项目上下文指令(AI 开发辅助) |
本项目采用 MIT 许可证,欢迎提交 Issue 和 Pull Request。