2025-12-05 14:44:44 +08:00
2026-03-09 10:09:10 +08:00
2025-12-05 14:44:44 +08:00
2025-12-05 14:44:44 +08:00

知识库管理系统

基于 Laravel 12 和 Filament 3.X 构建的企业级智能知识库管理平台集成文档管理、SOP 标准作业流程、终端配置管理、AI 提示词模板和系统设置等功能模块,为企业提供全方位的知识管理解决方案。

Laravel Filament PHP 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. 克隆项目
git clone <repository-url>
cd knowledge-base-system
  1. 安装依赖
composer install
npm install
  1. 配置环境
cp .env.example .env
php artisan key:generate

编辑 .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
  1. 运行迁移
php artisan migrate
  1. 生成测试数据(可选)
php artisan db:seed
  1. 创建管理员账户
php artisan make:filament-user
  1. 编译前端资源
npm run build
  1. 启动服务

开发环境有多种启动方式:

方式一:传统方式(分别启动)

# 终端 1Laravel 开发服务器
php artisan serve

# 终端 2队列工作进程
php artisan queue:work

# 终端 3Meilisearch如果本地安装
meilisearch --master-key="your-master-key"

方式二:使用 Composer 脚本(推荐)

# 一键启动所有服务(使用 concurrently
composer dev

# 使用 Octane 启动(高性能)
composer dev-octane

方式三:使用 Docker

# 启动 Docker 容器
docker-compose up -d

# 查看日志
docker-compose logs -f
  1. 访问系统

打开浏览器访问:http://localhost:8000/admin

📚 文档

🔧 配置

Meilisearch 配置

.env 文件中配置:

MEILISEARCH_HOST=http://127.0.0.1:7700
MEILISEARCH_KEY=your-master-key
SCOUT_DRIVER=meilisearch

文档转换配置

DOCUMENT_CONVERSION_DRIVER=pandoc
PANDOC_PATH=/usr/local/bin/pandoc
CONVERSION_TIMEOUT=300

队列配置

QUEUE_CONNECTION=redis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

Octane 配置(可选)

OCTANE_SERVER=swoole
OCTANE_HTTPS=false
OCTANE_HOST=0.0.0.0
OCTANE_PORT=8000
OCTANE_WORKERS=auto
OCTANE_MAX_REQUESTS=500

详细配置说明请参考 部署指南

🧪 测试

运行测试

# 运行所有测试
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 验证核心逻辑

🚀 常用命令

开发命令

# 启动开发服务器
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       # 查看失败的任务

数据库命令

# 迁移
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  # 重置并填充数据

搜索索引命令

# 导入搜索索引
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"

缓存命令

# 清除缓存
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     # 清除所有缓存

用户管理命令

# 创建管理员用户
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 文件。

🙏 致谢

感谢以下开源项目:

📞 联系方式

  • 问题反馈: 请在 GitHub Issues 中提交
  • 功能建议: 欢迎在 GitHub Discussions 中讨论

开发状态: 🚀 稳定版本

最后更新: 2026-03-09

版本: 1.0.0

Description
No description provided
Readme 2.2 MiB
Languages
PHP 71.9%
Blade 26.9%
Shell 1%
CSS 0.1%