日期:2026-07-13
我们当时服务的客户是一家以合同履约和售后工单为核心业务的某省级国资集团。他们的客服、法务、运营团队在日常工作中大量使用大模型辅助处理业务——比如把工单内容丢给模型做归类摘要、把合同条款交给模型做风险提示、把客户投诉转写文本交给模型做情绪分析。这些请求的真实价值在于模型能力,但业务数据里夹带着大量不该出域的内容:客户手机号、身份证号、银行卡号、合同金额、商业谈判底价等。
问题很现实:商用大模型是第三方托管的,一旦敏感字段随请求出域,就构成数据泄露;而私有化部署的小模型算力有限,复杂任务又离不开大模型。另一个痛点是成本:大模型按 token 计费,集团十几个业务部门都在调,三个月下来账单是一笔糊涂账,谁在滥用、谁在浪费,财务和信息化部门谁也说不清。
我们当时面对的核心诉求就两条——数据不能乱出域,成本要能算到部门头上。这恰好是 AI 网关作为"统一出入口"能系统性解决的问题,而不是在各个业务系统里各自补校验逻辑能搞定的。
我们把 AI 网关部署在业务系统和模型实例之间,作为所有模型调用的唯一出入口。业务系统不再直连任何模型,而是统一调用网关暴露的 REST/gRPC 接口(兼容 OpenAI 风格协议)。一条典型的请求生命周期是这样走的:
在这个架构里,脱敏、审计、计量不是三个独立功能,而是同一条请求链路上的三道关卡。这一点很关键——我们后来复盘,治理之所以能真正落地,靠的就是"所有流量必须过网关"这个硬约束,而不是靠各部门自觉。
① 敏感数据识别与脱敏
我们采用"正则 + NER 双路识别"的策略。正则负责结构稳定的强特征字段:手机号(1[3-9]\d{9})、身份证(\d{17}[\dXx])、银行卡(\d{16,19})、金额((人民币|¥)?\s?\d{1,3}(,\d{3})*(\.\d{2})?)等。NER 负责非结构化文本里的弱特征实体,比如合同里"甲方:某某科技有限公司"这类主体名称、谈判底价等自由表述。识别命中后,按字段类型做差异化脱敏:手机号保留前三位后四位(138****1234),身份证保留前六后四,金额统一替换为 <AMOUNT> 占位符。脱敏后再放行出域。核心原则是"先脱敏、后出域",脱敏动作发生在网关内部,明文不出网关内存边界。
② 审计留痕
审计日志采用结构化字段设计,每条记录至少包含:调用方身份(部门/应用/用户)、时间戳、目标模型、请求意图标签、输入摘要哈希、输出摘要哈希、是否触发脱敏、是否命中拦截、耗时与 token。输入输出的完整内容不落库(避免审计库本身变成新的泄露点),只存摘要哈希与命中标记,需要回溯时凭工单权限临时调取网关侧缓存。这样兼顾了"可追溯"与"不二次泄露"。
③ 配额与计量
计量层对每个部门维护一个令牌桶(token bucket)。每次调用按预估 token 扣减桶内额度,桶空则触发拒绝或降级(降到私有小模型)。账单按"部门 → 应用 → 用户"三级维度沉淀,月底由管控台导出。我们特别强调"计量先于优化":在还没看清各部门的真实消耗分布前,不做任何激进的限流,先把数据跑起来。等账单可视化后,滥用和浪费自然就暴露了。
④ 合规策略可配置
我们把合规规则从代码里抽出来,做成管控台可配置的策略。两类规则最常用:一类是"禁止出域字段"——比如某客户的商业底价字段,无论是否被识别为敏感,一律不允许进入商用模型;另一类是"模型可用域"——某些强合规数据只允许路由到私有化部署模型,路由层在分发前会强制校验。策略热更新,无需重启网关。
案例片段(已脱敏): 网关脱敏与拦截策略配置(YAML 示意):
yaml policies: - name: mask_pii_before_egress match: fields: [phone, id_card, bank_card] action: mask masks: phone: "138****1234" # 保留前3后4 id_card: "44030*********1234" # 保留前6后4 - name: block_secret_price match: regex: "谈判底价[::]\\s*\\d+" action: deny reason: "商业机密禁止出域" - name: private_only_models models: [legal-7b-private] scope: internal_only # 仅内网私有模型可用一次审计日志记录(脱敏后):json { "ts": "2026-03-18T10:22:05+08:00", "dept": "法务部", "app": "合同审查", "user": "u_8821", "model": "gpt-commercial", "intent": "合同风险提示", "masked": true, "blocked": false, "prompt_tokens": 1820, "completion_tokens": 640, "cost_cny": 1.27, "latency_ms": 3120 }
上线约一个季度后,我们统计了脱敏示意数据(均为脱敏示意值,非审计级精确数字):
结语:AI 网关在我们这个项目里不是"加了一层转发",而是把原来分散在业务系统里、没人管得了的数据安全和成本核算问题,收拢成一个可观测、可配置、可追溯的统一控制面。对正在上大模型的企业来说,先立网关、再谈场景,往往比先堆场景、后补安全要省心得多。