多租户AI平台设计:权限隔离、数据隔离与计费隔离工程实现

一、问题背景

企业级AI平台通常需要服务多个业务单元或外部客户。每个租户都有独立的需求:

  • 租户A(研发部):只能调用代码类模型,不能访问合同知识库

  • 租户B(法务部):只能调用合同审查应用,数据与其他租户隔离

  • 租户C(外部客户):需要独立计费,月底出账单

这就引出了多租户AI平台的三个核心挑战:

|------|------------------|
| 挑战 | 核心问题 |
| 权限隔离 | 租户A不能访问租户B的应用和模型 |
| 数据隔离 | 租户A的知识库不能被租户B检索到 |
| 计费隔离 | 每个租户的成本独立核算、独立出账 |

二、整体架构设计

核心思路: 在AI网关层实现租户感知,所有资源以租户为边界进行隔离。

系统架构:

租户上下文传递链路:

三、权限隔离设计

目标: 租户A不能调用租户B的模型应用,也不能访问租户B的知识库。

3.1 数据模型

3.2 权限校验流程

3.3 资源隔离策略

|----------|-------|------------------|
| 资源类型 | 隔离策略 | 实现方式 |
| 模型调用 | 租户级限流 | API Key绑定租户ID |
| 知识库 | 检索时过滤 | 查询条件强制带tenant_id |
| Prompt模板 | 租户内共享 | 模板表带tenant_id字段 |
| 应用/工作流 | 租户内共享 | 应用表带tenant_id字段 |

四、数据隔离设计

目标: 租户A的知识库数据,不会被租户B检索到。

4.1 行级数据隔离

核心原则: 所有数据表都带 tenant_id 字段,所有查询自动追加该条件。

4.2 向量数据库隔离

向量数据库的多租户隔离方案对比:

方案 实现方式 适用场景

租户分区 每个租户独立partition 租户数少(<100)

租户字段过滤 检索时带tenant_id过滤 租户数中等(100-1000)

租户独立实例 每个租户独立向量库 租户数少、数据量大、隔离要求高

推荐方案:租户字段过滤

4.3 跨租户数据共享(可选)

某些场景需要跨租户共享数据(如公共模型、公共知识库):

五、计费隔离设计

目标: 每个租户的成本独立核算,支持多维度计费和账单输出。

5.1 计费数据采集

每次模型调用记录以下字段:

5.2 计费模式

|--------|--------------------------|-------------|
| 计费模式 | 公式 | 适用租户 |
| 按Token | 单价 × (输入Token + 输出Token) | 用量稳定的租户 |
| 按调用次数 | 单价 × 调用次数 | 输入输出差异大的场景 |
| 套餐制 | 月费固定,超量按量计费 | 企业租户 |
| 混合模式 | 套餐费 + 超额按量 | 多数SaaS平台的标配 |

5.3 成本归因与报表

多维度报表:

|-----|--------------|
| 维度 | 说明 |
| 租户级 | 每个租户月度/年度总账单 |
| 应用级 | 租户内各应用的消耗分布 |
| 模型级 | 租户内各模型的成本占比 |
| 用户级 | 租户内各用户的调用统计 |

在具体实现上,有企业采用 ZGI 作为多租户AI平台的底座方案,其权限隔离、数据隔离、计费隔离能力覆盖了上述全部设计。

六、落地路径建议

第一阶段:租户识别(1周)

  • 设计租户上下文传递机制(Header/Tag)

  • 实现网关层的租户ID提取和透传

第二阶段:权限与数据隔离(2-4周)

  • 在数据表中增加tenant_id字段

  • 改造DAO层,所有查询自动追加租户过滤

  • 实现RBAC扩展权限模型

第三阶段:计费隔离(2-3周)

  • 建立计费数据采集链路

  • 实现按Token/按次计费逻辑

  • 输出租户月度账单

七、总结

多租户AI平台的核心是三层隔离:

|------|----------|--------------------|
| 隔离类型 | 核心机制 | 关键实现 |
| 权限隔离 | RBAC扩展模型 | 租户ID + 角色权限 |
| 数据隔离 | 行级隔离 | tenant_id字段 + 查询拦截 |
| 计费隔离 | 租户级计量 | 调用记录 + 多维度归因 |

三层隔离既有独立的实现逻辑,又共用同一个租户标识(tenant_id)。租户ID是整个隔离体系的锚点。

本文基于多租户AI平台建设实践整理。

相关推荐
lee_curry8 小时前
AI Agent 工程师完整学习路线(面向生产级项目与面试)
人工智能·学习·ai·面试·agent
大模型真好玩8 小时前
DeepSeek Harness 入门很简单(二)——DeepSeek Harness通用设置及Agent预设详解
人工智能·agent·deepseek
前端世界8 小时前
基于 Linux 的本地 AI 智能问答平台搭建实践 —— Ollama + FastAPI + Nginx 实现本地大模型 Web 服务
linux·运维·人工智能
小小小小钰儿8 小时前
1.2-AI核心理论与术语
人工智能·计算机·网络安全·信息安全·程序员·编程
桃西西呀8 小时前
"循环深度"让小模型免费变大?GPT-6 Astra 背后的潜空间推理原理,8 个误读我替你拆了
人工智能·gpt·llm
数智工坊8 小时前
NTIRE2024×4图像超分竞赛综述|Mamba崛起、数据缩放、频域增强成为新趋势
网络·人工智能·深度学习·cnn·机器人
Raas1008 小时前
AI网关和大模型网关区别?MAI Gateway(魔芋企业级AI网关)如何实现AI流量统一治理
大数据·人工智能·gateway·ai网关·mai gateway·企业级产品
APSandafa9 小时前
安达发|灯具制造数字化:靠APS自动排程跑出交付优势
人工智能·制造·aps系统·aps自动排产·aps自动排单·aps智能排产排程排单软件
动物园猫9 小时前
道路设施目标检测数据集:4类别、5,000张图像 | 目标检测
人工智能·目标检测·计算机视觉
HIT_Weston9 小时前
203、【Agent】【OpenCode】JS 语法:作用域链与 var 循环陷阱
人工智能·agent·opencode