# 知识库管理系统 - 设计文档总览 ## 文档导航 | 编号 | 文档 | 内容 | |---|---|---| | 01 | [需求与决策记录](./01-requirements.md) | 原始需求、关键决策、非功能性要求、范围排除 | | 02 | [架构设计](./02-architecture.md) | 技术栈、目录结构、数据库表、API、业务流程、初始化、安全 | | 03 | [技能约束备忘录](./03-skill-constraints.md) | tag-system 与 fullstack-merge-deploy 两个技能的硬性约束 | | 04 | [LLM Prompt 设计](./04-llm-prompts.md) | 归类、聚合、生成、Diff 计算的 prompt 与流程 | ## 快速概览 - **后端**:Spring Boot 3.2 + MyBatis Plus + MySQL 8 + JWT - **前端**:Vue 3 + Vite + Element Plus + Pinia - **部署**:合并部署,端口 **7945**,前端 dist 直出后端 static - **包名**:`com.knowledge.extractor` - **核心模块**:标签体系(tag-system)/ 文章录入 / LLM 归类 / 知识聚合 + 版本管理 ## 实施顺序 ``` 后端骨架 → 标签体系 → 文章录入 → LLM 集成 → 知识聚合 + 版本 ↓ 前端骨架 → 标签页 → 文章页 → 知识页(时间轴)→ 设置页 ↓ 合并部署配置(端口 7945、SPA fallback、run 脚本) ``` ## 关键约束(最易踩坑) 1. **写操作一律 POST**,不用 PUT/DELETE(tag-system 规范) 2. **SPA Fallback** 必须用 `SpaController`,不能用 `addResourceHandlers("/**")` 或 `addViewControllers` 3. **Vite outDir 直出** `backend/src/main/resources/static`,run 脚本严禁做"清理 + 复制 dist" 4. **run.bat** 必须以 `chcp 65001 >nul` 开头 5. **.gitattributes** 必须创建锁定 bat/sh 换行符 6. **api_key** 必须 AES 加密入库 7. **不主动启动服务**(按用户全局规则)