# 知识库管理系统 基于 Laravel 12 和 Filament 3.X 构建的企业级智能知识库管理平台,集成文档管理、SOP 标准作业流程、终端配置管理、AI 提示词模板和系统设置等功能模块,为企业提供全方位的知识管理解决方案。 [![Laravel](https://img.shields.io/badge/Laravel-12.x-red.svg)](https://laravel.com) [![Filament](https://img.shields.io/badge/Filament-3.x-orange.svg)](https://filamentphp.com) [![PHP](https://img.shields.io/badge/PHP-8.2+-blue.svg)](https://php.net) [![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE) ## ✨ 核心功能 ### 功能模块概览 | 模块 | 功能描述 | 状态 | |------|---------|------| | 📄 文档管理 | Word 文档上传、转换、预览、搜索 | ✅ 已完成 | | 📋 SOP 流程 | 标准作业流程模板管理和版本控制 | ✅ 已完成 | | 🖥️ 终端管理 | 生产终端配置和知识库关联 | ✅ 已完成 | | 🤖 AI 提示词 | AI 助手提示词模板和变量系统 | ✅ 已完成 | | ⚙️ 系统设置 | 动态系统配置管理 | ✅ 已完成 | | 📊 活动日志 | 操作审计和变更追踪 | ✅ 已完成 | | 👥 用户管理 | 用户和分组权限管理 | ✅ 已完成 | | 🔍 全文搜索 | Meilisearch 快速搜索 | ✅ 已完成 | ### 📄 文档管理系统 - **多格式支持**:支持 .doc 和 .docx 格式的 Word 文档上传 - **智能分类**: - 全局知识库:所有用户可访问 - 专用知识库:仅特定分组用户可访问 - **自动转换**:异步将 Word 文档转换为 Markdown 格式 - **在线预览**:Markdown 格式在线预览,支持富文本渲染 - **安全下载**:支持原始文档下载,自动记录下载日志 - **全文搜索**:集成 Meilisearch 提供毫秒级搜索响应 ### 📋 SOP 标准作业流程 - **模板管理**:创建和管理标准作业流程模板 - **步骤编排**:支持多步骤流程定义,可设置步骤顺序 - **交互任务**:支持在步骤中添加交互式任务 - **版本控制**:自动记录 SOP 模板的版本历史 - **状态管理**:支持草稿、已发布、已归档等状态 - **分类标签**:支持按类别、部门、岗位分类管理 - **导入导出**:支持 SOP 模板的导入和导出功能 ### 🖥️ 终端配置管理 - **终端注册**:管理生产现场的终端设备 - **知识库关联**:为终端配置可访问的知识库,支持优先级设置 - **提示词配置**:为每个终端配置专属的 AI 提示词模板 - **配置同步**:支持终端配置的异步同步和状态跟踪 - **在线状态**:实时监控终端在线状态 - **工位绑定**:支持终端与工作站的绑定关系 - **图纸关联**:可为终端关联工位图纸 URL ### 🤖 AI 提示词模板 - **模板库**:预定义多种场景的 AI 提示词模板 - 通用助手:一般性问答和操作指导 - 安全专员:安全操作指导和风险提示 - 故障诊断:设备故障诊断和问题排查 - 培训教练:新员工培训和操作指导 - 质量检查:质量控制和检验指导 - **变量系统**:支持动态变量替换 - 用户信息:用户名、角色、部门 - 终端信息:终端名称、编码、工作站 - 时间信息:当前时间、日期、班次 - 知识库:关联的知识库列表 - **实时预览**:支持提示词模板的实时预览和变量替换 - **变量验证**:自动验证模板中使用的变量是否有效 ### ⚙️ 系统设置管理 - **配置分组**:支持按功能模块分组管理系统配置 - **动态配置**:支持运行时动态修改系统配置 - **配置缓存**:自动缓存配置提升性能 - **公开配置**:支持标记配置是否对外公开 - **配置描述**:为每个配置项提供详细说明 ### 📊 活动日志审计 - **操作记录**:自动记录所有重要操作 - **变更追踪**:详细记录数据变更前后的差异 - **用户追溯**:记录操作用户和时间信息 - **批量操作**:支持批量操作的日志记录 - **日志导出**:支持活动日志的导出功能 - **差异对比**:可视化展示数据变更的差异 ### 🔐 权限与安全 - **用户分组**:用户可以属于多个分组 - **细粒度权限**: - 全局文档:所有用户可访问 - 专用文档:只有所属分组用户可访问 - **策略控制**:基于 Laravel Policy 的权限控制 - **安全日志**:记录所有未授权访问尝试 - **操作审计**:完整的操作日志和审计追踪 ### 🎨 用户界面 - **现代化设计**:基于 Filament 3.X 的美观管理界面 - **完整中文化**:所有界面元素使用简体中文 - **响应式布局**:完美支持桌面和移动设备 - **Monaco 编辑器**:集成 Monaco 编辑器支持代码和 Markdown 编辑 - **直观操作**:简洁的操作流程,降低学习成本 ## 🚀 快速开始 ### 环境要求 - PHP 8.2 或更高版本 - Composer 2.x - Node.js 18+ 和 npm - MySQL 8.0+ 或 PostgreSQL 13+ - Redis 6.0+ - Meilisearch 1.5+ - Pandoc 2.x+(可选,用于文档转换) - Laravel Octane(可选,用于高性能部署) ### 安装步骤 1. **克隆项目** ```bash git clone cd knowledge-base-system ``` 2. **安装依赖** ```bash composer install npm install ``` 3. **配置环境** ```bash cp .env.example .env php artisan key:generate ``` 编辑 `.env` 文件,配置数据库连接: ```env DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=knowledge_base DB_USERNAME=your_username DB_PASSWORD=your_password ``` 4. **运行迁移** ```bash php artisan migrate ``` 5. **生成测试数据**(可选) ```bash php artisan db:seed ``` 6. **创建管理员账户** ```bash php artisan make:filament-user ``` 7. **编译前端资源** ```bash npm run build ``` 8. **启动服务** 开发环境有多种启动方式: **方式一:传统方式(分别启动)** ```bash # 终端 1:Laravel 开发服务器 php artisan serve # 终端 2:队列工作进程 php artisan queue:work # 终端 3:Meilisearch(如果本地安装) meilisearch --master-key="your-master-key" ``` **方式二:使用 Composer 脚本(推荐)** ```bash # 一键启动所有服务(使用 concurrently) composer dev # 使用 Octane 启动(高性能) composer dev-octane ``` **方式三:使用 Docker** ```bash # 启动 Docker 容器 docker-compose up -d # 查看日志 docker-compose logs -f ``` 9. **访问系统** 打开浏览器访问:`http://localhost:8000/admin` ## 📚 文档 - [项目概览](docs/PROJECT_OVERVIEW.md) - 系统架构和功能详解 - [部署指南](docs/DEPLOYMENT.md) - 生产环境部署步骤 - [API 参考](docs/API_REFERENCE.md) - 服务类和方法文档 - [Meilisearch 配置](docs/MEILISEARCH_SETUP.md) - 搜索引擎配置说明 - [文档转换指南](docs/DOCUMENT_CONVERSION_GUIDE.md) - 转换功能配置 - [文档预览指南](docs/DOCUMENT_PREVIEW_GUIDE.md) - 预览功能说明 - [文档搜索指南](docs/DOCUMENT_SEARCH_GUIDE.md) - 搜索功能配置 - [队列设置](docs/QUEUE_SETUP.md) - 队列系统配置 - [Octane 安装](docs/OCTANE_INSTALLATION.md) - 高性能服务器配置 - [Swoole 配置](docs/SWOOLE_CONFIGURATION.md) - Swoole 服务器配置 - [安全日志](docs/security-logging.md) - 安全审计功能说明 - [Docker 部署](docker/README.md) - Docker 容器化部署指南 ## 🔧 配置 ### Meilisearch 配置 在 `.env` 文件中配置: ```env MEILISEARCH_HOST=http://127.0.0.1:7700 MEILISEARCH_KEY=your-master-key SCOUT_DRIVER=meilisearch ``` ### 文档转换配置 ```env DOCUMENT_CONVERSION_DRIVER=pandoc PANDOC_PATH=/usr/local/bin/pandoc CONVERSION_TIMEOUT=300 ``` ### 队列配置 ```env QUEUE_CONNECTION=redis REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null REDIS_PORT=6379 ``` ### Octane 配置(可选) ```env OCTANE_SERVER=swoole OCTANE_HTTPS=false OCTANE_HOST=0.0.0.0 OCTANE_PORT=8000 OCTANE_WORKERS=auto OCTANE_MAX_REQUESTS=500 ``` 详细配置说明请参考 [部署指南](docs/DEPLOYMENT.md)。 ## 🧪 测试 ### 运行测试 ```bash # 运行所有测试 php artisan test # 运行特定测试 php artisan test --filter=DocumentAccessScopePropertyTest # 生成测试覆盖率报告 php artisan test --coverage # 运行特定测试套件 php artisan test tests/Feature php artisan test tests/Unit ``` ### 测试类型 - **单元测试**:测试独立的类和方法 - **功能测试**:测试完整的用户流程 - **属性测试**:使用 Property-Based Testing 验证核心逻辑 ## 🚀 常用命令 ### 开发命令 ```bash # 启动开发服务器 composer dev # 启动所有服务(推荐) composer dev-octane # 使用 Octane 启动 php artisan serve # 仅启动 Laravel # Octane 相关 composer octane:start # 启动 Octane composer octane:stop # 停止 Octane composer octane:restart # 重启 Octane composer swoole:start # 使用 Swoole 启动 composer swoole:watch # Swoole 监听文件变化 # 队列相关 php artisan queue:work # 启动队列工作进程 php artisan queue:listen # 监听队列 php artisan queue:restart # 重启队列工作进程 php artisan queue:failed # 查看失败的任务 ``` ### 数据库命令 ```bash # 迁移 php artisan migrate # 运行迁移 php artisan migrate:fresh # 清空数据库并重新迁移 php artisan migrate:rollback # 回滚迁移 # 填充数据 php artisan db:seed # 运行所有 Seeder php artisan db:seed --class=SystemSettingSeeder # 运行特定 Seeder # 重置数据库 php artisan migrate:fresh --seed # 重置并填充数据 ``` ### 搜索索引命令 ```bash # 导入搜索索引 php artisan scout:import "App\Models\Document" # 清空搜索索引 php artisan scout:flush "App\Models\Document" # 重建搜索索引 php artisan scout:flush "App\Models\Document" php artisan scout:import "App\Models\Document" ``` ### 缓存命令 ```bash # 清除缓存 php artisan cache:clear # 清除应用缓存 php artisan config:clear # 清除配置缓存 php artisan route:clear # 清除路由缓存 php artisan view:clear # 清除视图缓存 # 生成缓存 php artisan config:cache # 缓存配置 php artisan route:cache # 缓存路由 php artisan view:cache # 缓存视图 # 清除所有缓存 php artisan optimize:clear # 清除所有缓存 ``` ### 用户管理命令 ```bash # 创建管理员用户 php artisan make:filament-user # 创建自定义管理员 php artisan app:create-admin-user ``` ## 📦 技术栈 ### 后端 - **Laravel 12.x** - PHP Web 应用框架 - **Filament 3.X** - 管理面板框架 - **Laravel Scout** - 全文搜索集成 - **Laravel Octane** - 高性能应用服务器 - **Meilisearch** - 快速搜索引擎 - **Pandoc** - 文档格式转换工具 - **Spatie Activity Log** - 活动日志记录 ### 前端 - **Blade** - Laravel 模板引擎 - **Tailwind CSS** - CSS 框架 - **Alpine.js** - JavaScript 框架(Filament 内置) - **Livewire** - 全栈框架(Filament 内置) - **Monaco Editor** - 代码编辑器 ### 数据库 - **MySQL 8.0+** 或 **PostgreSQL 13+** - **Redis** - 缓存和队列 ### 开发工具 - **Pest PHP** - 测试框架 - **Laravel Pint** - 代码格式化工具 - **Composer** - PHP 依赖管理 - **npm** - 前端依赖管理 ## 🗂️ 项目结构 ``` knowledge-base-system/ ├── app/ │ ├── Console/ │ │ └── Commands/ # Artisan 命令 │ ├── Exports/ # 数据导出类 │ ├── Filament/ # Filament 资源和页面 │ │ ├── Actions/ # 自定义操作 │ │ ├── Pages/ # 自定义页面(搜索、系统设置) │ │ └── Resources/ # 资源管理 │ │ ├── ActivityLogResource/ # 活动日志 │ │ ├── DocumentResource/ # 文档管理 │ │ ├── GroupResource/ # 分组管理 │ │ ├── SopTemplateResource/ # SOP 模板 │ │ ├── SystemSettingResource/ # 系统设置 │ │ ├── TerminalResource/ # 终端管理 │ │ └── UserResource/ # 用户管理 │ ├── Http/ │ │ └── Controllers/ # 控制器(文档预览) │ ├── Jobs/ # 队列任务 │ │ ├── ConvertDocumentToMarkdown.php # 文档转换 │ │ └── SyncTerminalConfigJob.php # 终端同步 │ ├── Models/ # Eloquent 模型 │ │ ├── Document.php # 文档 │ │ ├── Group.php # 分组 │ │ ├── KnowledgeBase.php # 知识库 │ │ ├── SopTemplate.php # SOP 模板 │ │ ├── SystemSetting.php # 系统设置 │ │ ├── Terminal.php # 终端 │ │ └── User.php # 用户 │ ├── Observers/ # 模型观察者 │ ├── Policies/ # 授权策略 │ └── Services/ # 业务逻辑服务 │ ├── DocumentConversionService.php # 文档转换 │ ├── DocumentPreviewService.php # 文档预览 │ ├── DocumentSearchService.php # 文档搜索 │ ├── PromptTemplateService.php # 提示词模板 │ ├── SopTemplateService.php # SOP 模板 │ ├── SystemSettingService.php # 系统设置 │ └── TerminalSyncService.php # 终端同步 ├── config/ │ ├── activitylog.php # 活动日志配置 │ ├── documents.php # 文档转换配置 │ ├── filesystems.php # 文件存储配置 │ ├── octane.php # Octane 配置 │ ├── prompt_templates.php # 提示词模板配置 │ ├── prompt_variables.php # 提示词变量配置 │ └── scout.php # Meilisearch 配置 ├── database/ │ ├── factories/ # 测试数据工厂 │ ├── migrations/ # 数据库迁移 │ └── seeders/ # 数据填充 ├── docker/ # Docker 部署文件 ├── docs/ # 项目文档 ├── resources/ │ └── views/ # Blade 视图模板 │ ├── documents/ # 文档预览视图 │ └── filament/ # Filament 自定义视图 ├── storage/ │ └── app/ │ └── private/ │ ├── documents/ # 原始文档存储 │ └── markdown/ # Markdown 文件存储 ├── tests/ # 测试文件 │ ├── Feature/ # 功能测试 │ └── Unit/ # 单元测试 └── .kiro/ └── specs/ # 功能规格文档 ``` ## 🤝 贡献 欢迎贡献代码!请遵循以下步骤: 1. Fork 本仓库 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 开启 Pull Request ## 📝 更新日志 ### v1.0.0 (2026-03-09) #### 核心功能模块 - ✅ 用户认证和授权系统 - ✅ 用户分组管理 - ✅ 文档管理系统 - 文档上传和存储 - 文档分类(全局/专用) - 基于分组的权限控制 - 文档下载和日志记录 - Word 文档自动转换为 Markdown - 异步队列处理转换任务 - Meilisearch 全文搜索集成 - 文档 Markdown 在线预览 - 搜索结果权限过滤 #### 新增功能模块 - ✅ SOP 标准作业流程管理 - SOP 模板创建和编辑 - 多步骤流程定义 - 交互式任务支持 - 版本历史记录 - 状态管理(草稿/已发布/已归档) - 导入导出功能 - ✅ 终端配置管理 - 终端设备注册和管理 - 知识库关联配置 - AI 提示词模板配置 - 配置同步功能 - 在线状态监控 - 工位绑定管理 - ✅ AI 提示词模板系统 - 预定义模板库(5 种场景) - 动态变量系统 - 实时预览功能 - 变量验证机制 - ✅ 系统设置管理 - 配置分组管理 - 动态配置修改 - 配置缓存优化 - ✅ 活动日志审计 - 操作记录追踪 - 变更差异对比 - 用户操作审计 - 日志导出功能 #### 技术改进 - ✅ 升级到 Laravel 12.x - ✅ 集成 Laravel Octane 支持 - ✅ 集成 Spatie Activity Log - ✅ 集成 Monaco Editor - ✅ 完整的测试套件 - ✅ Docker 容器化部署支持 - ✅ 安全日志记录 - ✅ Filament 管理面板 - ✅ 完整中文界面 #### 待完成功能 - ⏳ 性能优化(缓存、索引优化) - ⏳ UI 增强(动画和交互优化) - ⏳ 移动端适配优化 - ⏳ API 接口文档 ## 🔒 安全 如果发现安全漏洞,请发送邮件至 security@example.com,我们会及时处理。 请勿在公开的 issue 中报告安全问题。 ## 📄 许可证 本项目采用 MIT 许可证。详情请参阅 [LICENSE](LICENSE) 文件。 ## 🙏 致谢 感谢以下开源项目: - [Laravel](https://laravel.com) - 优雅的 PHP 框架 - [Filament](https://filamentphp.com) - 强大的管理面板 - [Laravel Octane](https://laravel.com/docs/octane) - 高性能应用服务器 - [Meilisearch](https://www.meilisearch.com) - 快速搜索引擎 - [Pandoc](https://pandoc.org) - 通用文档转换器 - [Spatie Activity Log](https://spatie.be/docs/laravel-activitylog) - 活动日志记录 - [Monaco Editor](https://microsoft.github.io/monaco-editor/) - 强大的代码编辑器 - [Tailwind CSS](https://tailwindcss.com) - 实用优先的 CSS 框架 ## 📞 联系方式 - **问题反馈**: 请在 GitHub Issues 中提交 - **功能建议**: 欢迎在 GitHub Discussions 中讨论 --- **开发状态**: 🚀 稳定版本 **最后更新**: 2026-03-09 **版本**: 1.0.0