如何使用脱敏还原 API

更新时间:
复制 MD 格式

对接大模型应用时,企业通常需要在用户输入发送给模型之前脱敏其中的敏感信息(如产品内部信息、未公开专利等),并在模型回答返回后将脱敏内容恢复为原始信息,以保证业务内容完整可用。AI安全护栏 提供自定义脱敏与脱敏数据还原能力,支持业务系统通过 API 串联“入向脱敏 → 调用大模型 → 出向还原”的完整链路。本文介绍脱敏还原 API 的接入前提、调用方式与注意事项。

说明

本文介绍的自定义脱敏是 AI安全护栏 的一个独立检测项。防护配置文档中敏感内容检测是系统内置的PII相关敏感内容检测,与本文的自定义脱敏是不同功能,请注意区分。

前提条件

开通服务

前往AI安全护栏产品开通服务页面,开通 AI安全护栏 产品服务。

为 RAM 用户授权

在接入 API 之前,需要为 RAM 用户授权。可以为阿里云账号和 RAM 用户创建一个访问密钥(AccessKey),在调用阿里云 API 时使用 AccessKey 完成身份验证。授权与 AccessKey 的创建方法请参见阿里云官方文档。

安装并接入 SDK

AI安全护栏 产品服务 SDK 请参考SDK参考。

在控制台完成脱敏与还原配置

调用 API 前,需要在 AI安全护栏控制台完成自定义脱敏和脱敏数据还原配置。完成配置后,才能通过 API 使用相应能力,详情查看配置自定义脱敏还原。

  1. 登录AI安全护栏控制台,进入防护配置。

  2. 在目标 service 的配置入口进入 service 配置。

  3. 开启自定义脱敏。自定义脱敏需要您前置配置自定义脱敏内容,可以在知识库管理->脱敏词库管理中配置脱敏内容,目前最多配置 1 个脱敏词库,每个词库最多包含 1000 个词。同时,您也可按需开启敏感内容检测,敏感内容为系统内置PII敏感内容规则检测,同样支持脱敏与还原能力,您可按需开启。

  4. 需注意,还原配置默认关闭,是否开启还原为单独开关控制,您需进入敏感内容或自定义脱敏配置项内自行配置开启。

API 说明

通用调用约定

API 的签名、公共请求参数和调用方式,请参见多模态实时审核 API 接入指南。

调用链路

脱敏还原能力的典型调用链路如下:

  1. 入向脱敏:将用户输入文本提交至脱敏接口,同时随请求传入映射标识 desensitizeId以及请求动作maskingAction参数。接口返回脱敏后的文本。

  2. 调用大模型:将脱敏后的文本发送给大模型进行处理。

  3. 出向还原:将模型输出提交至还原接口,并回传与脱敏请求相同的 desensitizeId以及请求动作maskingAction参数,接口根据映射关系将被脱敏的内容恢复为原始信息。

请求参数

ServiceParameters 包含以下与自定义脱敏和还原相关的字段。

名称

类型

是否必须

示例值

描述

desensitizeId

String

是(业务唯一 ID)

biz-2026-05-27-uuid-xxxx

业务唯一 ID。入向脱敏与出向还原必须使用相同的值,CIP 据此关联脱敏和还原映射。

maskingAction

String

是

desensitize 或 restore

使用自定义脱敏时必须传入,否则无法触发。desensitize 表示脱敏,restore 表示还原。

入向脱敏请求示例

{
  "Service": "query_security_check",
  "ServiceParameters": {
    "content": "我叫张三,身份证号 110101199001011234,公司是阿里云。",
    "desensitizeId": "biz-2026-05-27-uuid-xxxx",
    "sessionId": "sess-xxxx",
    "accountId": "uid-xxxx",
    "maskingAction": "desensitize"
  }
}

出向还原请求示例

{
  "Service": "response_security_check",
  "ServiceParameters": {
    "content": "<模型回答,可能包含占位符>",
    "desensitizeId": "biz-2026-05-27-uuid-xxxx",
    "maskingAction": "restore"
  }
}

返回参数

顶层字段

字段

类型

说明

Code

Integer

200 表示业务成功;其他值表示业务错误。

Message

String

状态消息。

RequestId

String

阿里云请求追踪 ID。提交工单时必须提供该值。

Data

Object

审核结果。

聚合判定

字段

类型

说明

Suggestion

String

聚合后的总建议。取值为 pass、block、watch 或 mask。聚合优先级从高到低为 block > mask > watch > pass。

Detail

Array

各防护维度的逐项结果。

Detail[i]:逐维度结果

字段

说明

Type

防护维度。例如,sensitiveData 表示敏感数据检测;自定义脱敏还原与敏感数据检测属于同一维度层级。

Suggestion

当前维度的判定结果。自定义脱敏命中时为 mask。

Level

风险等级。自定义脱敏命中时为 medium。

Result

命中明细数组。

Result[i].Ext:维度专属扩展字段

字段

适用场景

说明

Desensitization

入向脱敏

返回脱敏后的文本。

Restoration

出向还原

返回还原后的文本。

示例

脱敏响应示例

{
  "Code": 200,
  "Data": {
    "desensitizeId": "biz-conversation-001",
    "Suggestion": "mask",
    "Detail": [
      {
        "Type": "customDesensitization",
        "Level": "high",
        "Suggestion": "mask",
        "Result": [
          {
            "Label": "customDesensitization",
            "Level": "high",
            "Description": "自定义脱敏",
            "Ext": {
              "Desensitization": "张三 【手机号(中国内地)#4c01】,公司是【公司-ASDDSNC#4c01】"
            }
          }
        ]
      },
      {
        "Type": "sensitiveData",
        "Suggestion": "mask",
        "Result": [
          {
            "Label": "1814",
            "Level": "S2",
            "Description": "手机号(中国内地)",
            "Ext": {
              "Desensitization": "张三 【手机号(中国内地)】,公司是阿里云"
            }
          }
        ]
      }
    ]
  }
}

【手机号(中国内地)#4c01】 表示敏感内容命中,【公司-ASDDSNC#4c01】 表示自定义敏感数据命中。

还原响应示例

{
  "Code": 200,
  "Data": {
    "desensitizeId": "biz-conversation-001",
    "Suggestion": "pass",
    "Detail": [
      {
        "Type": "customDesensitization",
        "Level": "none",
        "Suggestion": "pass",
        "Result": [
          {
            "Label": "customDesensitization",
            "Level": "none",
            "Description": "自定义还原",
            "Ext": {
              "Restoration": "张三18293921392,公司是阿里云"
            }
          }
        ]
      }
    ]
  }
}

还原响应中,其他合规检测维度的结果保持其原有返回结构。

Code 说明

Code = 200 表示业务成功,其他值表示业务错误。通用状态码的整体说明可参考API接入指南中的 Code 说明。

注意事项

  1. 调用方必须在业务侧缓存入向脱敏时使用的desensitizeId,出向还原时必须传入相同的值;否则无法还原。

  2. 调用还原能力前,请先在控制台开启对应防护维度(敏感内容、自定义脱敏)的还原开关;还原开关未开启的维度不会执行还原。

  3. 注意不要修改Desensitization 中占位符,不要截断、添加前后缀或做大小写转换,否则占位符可能失效。

  4. content 单次不超过 2000 个字符。超长内容由调用方自行切片并发;同一逻辑请求建议各切片共用 desensitizeId,以便整体还原。

  5. desensitizeId 的脱敏信息目前有效期为 1 个月,超出时间则无法进行还原。

  6. 支持跨 service 还原:脱敏和还原可以调用开启不同检测能力的 service。

  7. 自定义脱敏当前处于公测阶段,公测期间免费试用,开关打开后约 5 分钟之内服务生效。

  8. 自定义脱敏当前仅支持文本检测场景,图片、文件、多模态、音视频等检测模态暂不支持。

  9. 脱敏词库当前仅支持设置一个,且仅支持批量文本录入:每个关键词以换行分隔,单个词不超过 50 字,最多 1000 行,暂不支持上传文件导入。

  10. 自定义脱敏检测项与敏感内容检测的“脱敏”是不同功能:前者按关联的脱敏词库对指定内容做定向脱敏,后者是敏感内容检出后的处置动作,请勿混淆。

相关文档

  • 配置自定义脱敏还原:在控制台开启自定义脱敏、创建并关联脱敏词库、配置脱敏数据还原的完整操作步骤。

  • 防护配置:检测项的开启与配置管理入口,以及敏感内容检测处置方式的说明。

  • API接入指南:基础文本检测接口的接入方法,本文的接入步骤与其一致。

  • SDK参考:AI安全护栏 产品服务 SDK 的安装与接入。