# DangKang-v2-Backend
**Repository Path**: toyou-managent/DangKang-v2-Backend
## Basic Information
- **Project Name**: DangKang-v2-Backend
- **Description**: 大模型AI知识库二期项目是在一期基础上进一步扩展的系统,旨在提升知识库的权限管理、文档管理、审批流程、审计日志等功能。该项目将进一步加强大模型的运维和管理能力,并优化用户权限、文档管理与访问控制等模块的可操作性。
本系统基于 Django 后端框架,面向企业级用户提供大规模知识库管理、智能审批与权限控制等服务。
- **Primary Language**: Python
- **License**: BSD-3-Clause
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2025-01-20
- **Last Updated**: 2025-06-24
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 大模型AI知识库 二期项目
## 项目背景
大模型AI知识库二期项目是在一期基础上进一步扩展的系统,旨在提升知识库的权限管理、文档管理、审批流程、审计日志等功能。该项目将进一步加强大模型的运维和管理能力,并优化用户权限、文档管理与访问控制等模块的可操作性。
本系统基于 Django 后端框架,面向企业级用户提供大规模知识库管理、智能审批与权限控制等服务。
## 3. 模块划分与说明
| **模块名称** | **主要功能** | **具体操作** | **潜在问题** | **解决方案** |
| ---------------------- | ---------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------- | ------------------------------------- |
| **1. 用户与角色管理模块** | - 管理用户和角色信息
- 配置和调整用户权限范围
- 支持角色模板和自定义角色功能 | - 添加/修改/删除用户
- 新增角色模板
- 分配和动态调整权限 | - 角色冲突:用户绑定多个角色时权限混乱
- 权限调整影响当前任务 | - 设置权限优先级,冲突时取最高权限
- 提供权限变更日志与审批流程 |
| **2. 权限配置与访问控制模块** | - 精准分配文档、知识库的访问权限
- 支持临时权限功能,覆盖动态需求 | - 设置知识库、文档访问权限
- 配置临时高级权限及有效期
- 管控跨部门权限 | - 临时权限滥用:超出合理时间或范围
- 权限设置复杂度高 | - 增加权限审核流程
- 提供权限配置向导,简化操作 |
| **3. 知识库与文档管理模块** | - 管理知识库分类结构
- 提供文档上传、删除和标签功能
- 提供高级搜索与筛选 | - 上传/删除文档
- 创建/修改/删除知识库
- 文档分类、标签设置
| - 文档冲突:多版本上传覆盖旧内容 | - 引入版本管理,保留历史版本
|
| **4. 知识库变更管理审批模块** | - 发起知识库变更流程
- 研发确认和模型训练
- 管理变更历史与版本控制 | - 提交变更请求
- 确认变更并锁定变更范围
- 更新线上版本,查看历史版本 | - 审批流程卡顿
- 并行变更导致版本冲突 | - 自动化审批提醒
- 设置变更锁,分阶段同步变更结果 |
| **5. 系统审计与日志模块** | - 记录用户操作
- 提供操作追溯和异常监控
- 支持审计与归档 | - 记录权限调整、文档操作(粒度——文档名称是否显示)、变更流程日志
- 单个用户(区分用户类型(本部门、临时权限角色))的访问行为(停留时间、提问内容)
- 单个库的访问记录
- 提供日志查询和可视化报表
- 导出 | - 日志量过大:存储和检索效率下降
- 异常行为未及时发现 | - 定期归档旧日志,压缩存储
- 配置实时告警和异常行为监控规则 |
| **6. 访问统计与分析模块**(前后台) | - 提供知识库和文档访问数据
- 支持跨角色的访问行为统计与分析 | - 排行榜
- 知识库、 人
- 访问频率、**上传文档数**
- 客户端、话题、知识库(整体、部门内)
- 统计频度:月 | - 数据粒度过大:统计难以量化 | - 设置统计范围和分级视图 |
| **7. 互动模块(前台)** | - 对回答进行评价,点赞或者无用;准确或者不准确 | - 用户可以在前台对知识库中的问题回答进行互动,支持点赞和标记为不准确 | - 用户评价主观性强,数据偏差 | - 提供多维度评价体系,结合数据分析优化权重 |
---
## 模块详细说明
### 1. 用户与角色管理模块
- **功能**:管理系统中的用户和角色信息,支持自定义角色以及角色模板,能够根据实际需求调整用户的访问权限范围。
- **潜在问题**:
- 角色冲突:当用户绑定多个角色时,可能出现权限冲突,导致系统误操作。
- 权限调整可能影响到正在进行中的任务。
- **解决方案**:
- 设置权限优先级,冲突时优先取最高权限。
- 提供权限变更日志与审批流程,确保变更的透明度。
### 2. 权限配置与访问控制模块
- **功能**:为用户精细化地配置访问权限,特别是在跨部门、跨角色之间,支持临时权限功能应对动态需求。
- **潜在问题**:
- 临时权限滥用:临时权限超出了合理范围或有效期。
- 权限设置可能较为复杂,影响用户体验。
- **解决方案**:
- 增加权限审核流程,确保临时权限使用的合理性。
- 提供权限配置向导,简化复杂的操作过程。
### 3. 知识库与文档管理模块
- **功能**:对知识库进行分类、管理,并提供文档上传、删除和标签管理功能,支持高级搜索与筛选,方便用户快速检索所需资源。
- **潜在问题**:
- 文档冲突:在上传新版本时,可能会覆盖旧的文档内容。
- **解决方案**:
- 引入版本管理机制,确保历史版本得到保留,避免覆盖和丢失数据。
### 4. 知识库变更管理审批模块
- **功能**:管理知识库的变更流程,包括变更请求的发起、研发的确认与模型训练的执行等,确保变更过程高效、可控。
- **潜在问题**:
- 审批流程可能出现延迟或卡顿,影响变更的及时性。
- 多个并行变更可能会导致版本冲突。
- **解决方案**:
- 设置自动审批提醒,避免因流程滞后而导致的延误。
- 设置变更锁定机制,确保变更同步且不冲突。
### 5. 系统审计与日志模块
- **功能**:记录用户的操作行为,提供可追溯的操作日志,支持异常监控和审计归档,确保安全合规。
- **潜在问题**:
- 日志量可能会非常庞大,存储和查询效率会下降。
- 异常行为未能及时发现,可能导致安全问题。
- **解决方案**:
- 定期归档并压缩存储旧日志,提高查询效率。
- 配置实时告警和异常行为监控,及时发现并响应问题。
### 6. 访问统计与分析模块
- **功能**:提供全面的访问统计数据,并支持跨角色、跨部门的访问行为分析,帮助管理层优化知识库的使用效率。
- **潜在问题**:
- 数据粒度过大,可能导致统计不精准或分析困难。
- **解决方案**:
- 提供灵活的统计范围配置,并使用分级视图帮助更细致的分析。
### 7. 互动模块(前台)
- **功能**:支持用户对知识库中问题的回答进行评价,能够标记为准确、不准确或者进行点赞,提供互动性反馈。
- **潜在问题**:
- 用户评价具有主观性,可能导致数据不准确。
- **解决方案**:
- 提供多维度的评价体系,结合数据分析进行优化,并赋予合理的评价权重。
---
## 安装与配置
请按照以下步骤安装和配置系统:
1. 克隆本项目并进入项目根目录:
```bash
git clone https://gitee.com/toyou-managent/DangKang-v2-Backend.git
cd DangKang-v2-Backend
```
2. 安装依赖:
```bash
pip install -r requirements.txt
```
3. 检查数据库及ORM变动:
```bash
python manage.py makemigrations
```
4. 配置数据库:
```bash
python manage.py migrate
```
4. 启动开发服务器:
```bash
python manage.py runserver
```
5. 打开浏览器并访问 `http://127.0.0.1:8000/` 查看系统。
---
## 贡献
如果你希望为
本项目贡献代码,欢迎提交 PR。请遵循以下步骤:
1. Fork 本仓库。
2. 创建一个新的分支 `feature/your-feature`。
3. 提交代码更改并推送到分支。
4. 提交 Pull Request。
---
如果有任何问题,欢迎联系项目负责人或在 Issues 中提交问题。