多层级RBAC-RAG 核心代码文件+部署调试手册(四)
基于前文轻量化企业级RAG权限架构,本文输出生产可用核心源码(Python/FastAPI)、完整部署流程、本地调试方案、权限自测逻辑。所有代码贴合跨部门隔离、部门内多级RBAC、切片级权限过滤体系,无冗余依赖,中小企业单机可直接部署上线。
极简分层结构,无复杂微服务,新手可快速上手
|
Plain Text |
1. 全局配置文件 config.py
|
Plain Text |
2. 依赖清单 requirements.txt
|
Plain Text |
3. 数据库模型文件 database.py(对应三张核心权限表)
|
Plain Text |
4. 核心权限中间件 rbac_middleware.py(三层鉴权核心)
实现:跨部门拦截 + 部门内密级过滤 + 黑白名单兜底,检索前置鉴权
|
Plain Text |
5. 文档入库权限打标模块 doc_ingest.py
实现文档切片、向量入库、自动绑定部门/密级权限标签
|
Plain Text |
6. RAG核心服务 rag_service.py
权限检索 + LLM二次权限约束生成
|
Plain Text |
7. 项目入口 main.py(API路由)
|
Plain Text |
1. 环境准备
- 服务器:4核8G 轻量云服务器(CentOS7+/Ubuntu20+)
- 安装Python3.9、MySQL8.0
- 创建数据库:create database rag_rbac_db default charset utf8mb4;
2. 项目部署步骤
- 新建项目文件夹mkdir rag_rbac_project && cd rag_rbac_project
- 将以上7个代码文件全部上传至目录
- 安装依赖:pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
- 修改 config.py 中:数据库密码、大模型API密钥
- 初始化数据:手动在 user_rbac 表插入测试用户、rbac_rule 插入权限规则
- 启动服务:python main.py
- 后台常驻运行:nohup python main.py > run.log 2>&1
1. 调试前置准备
- 本地安装MySQL8.0,创建对应数据库
- 修改config.py为本地数据库配置
- 在数据库录入测试数据:
- 普通员工账号(role_level=0,部门=销售部)
- 销售负责人账号(role_level=2,部门=销售部)
- 研发部测试账号
2. 接口调试(自动生成接口文档)
服务启动后访问:http://127.0.0.1:8000/docs
- 调用 /doc/ingest 上传测试文档,设置不同部门、不同密级
- 调用 /rag/chat 传入不同用户ID,测试权限拦截效果
- 跨部门拦截:销售账号查询研发、财务文档 → 返回无权限
- 部门内层级拦截:销售普通员工无法查看销售高密级底价文档,销售负责人可正常查看
- 白名单兜底:绝密文档仅白名单用户可访问,部门负责人也无法查看
- LLM生成约束:无权限内容不会被推演、不会泄露敏感数据
- 权限不生效:检查向量切片是否绑定secret_level、dept_owner元数据
- 检索为空:核对用户部门编码、角色等级配置是否正确
- 模型报错:检查API密钥、模型地址是否有效,切换轻量模型
- 数据残留:更新文档密级后,清空本地chroma_db缓存重新入库
|(注:文档部分内容可能由 AI 生成)
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)