mcpField
A
alibabacloud-safety-checker

alibabacloud-safety-checker

github.com/aliyunセキュリティ28157 回インストール1 日前に更新
リポジトリ

alibabacloud-safety-checker について

Alibaba Cloud のコンテンツ審査と AI セキュリティガードレールをテストするスキルです。シナリオ選択、検出項目の設定、一括テスト、結果のラベル付けを行い、サービスやカテゴリ別に検出精度を分析します。

主な機能

  1. 01事前定義された審査シナリオの選択
  2. 02コンソールで検出ラベルを設定
  3. 03JSON・CSV・Excel サンプルのテスト
  4. 04AI 入力・生成ガードレールのテスト
  5. 05誤検知と見逃しのラベル付け
  6. 06検出分析レポートの作成

活用シーン

  1. 01サンプルデータでコンテンツ審査サービスを評価
  2. 02プロンプトインジェクションと機密情報検出をテスト
  3. 03審査の見逃しや誤検知を確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/aliyun/alibabacloud-aiops-skills --skill alibabacloud-safety-checker

インストール後、Claude Code で/alibabacloud-safety-checkerを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

assets/
ai_guardrail_157.json
bias_test.json
chinese_10.json
elderly_scam_test.json
game_industry_20.json
guardrail_test_suite.json
zhipu_poc_10.json
references/
console-guide.md
label-matrix.md
ram-policies.md
scenarios.md
scripts/
ai_guardrail.py
annotator.py
client.py
config.py
console_automator.py
cst.py
main.py
models.py
prepare_novel.py
reporter.py
requirements.txt
runner.py
scenario_manager.py
scenarios.py
verify_auth.py

詳細

プロジェクトの README より

Content Security & AI Guardrails Tester

阿里云内容安全 + AI安全护栏自动化测试 Skill。覆盖从场景选择、控制台配置、批量测试到标注分析的全流程,同时支持AI安全护栏效果测试。

重要:执行规则

  1. 工作目录:所有 python3 命令必须使用绝对路径执行。脚本位于两个位置:
    • Skill目录: ~/.qoderwork/skills/safety-checker/(默认)
    • 用户项目目录: 如果用户有selected folder,优先使用该目录
  2. 命令格式:始终使用 python3 <绝对路径>/script.py 格式,例如: python3 ~/.qoderwork/skills/safety-checker/scenario_manager.py list
  3. 禁止循环执行同一命令:如果一条命令已成功执行并返回输出,直接将结果呈现给用户,不要重复执行
  4. 单次执行即响应:每个步骤只需执行一次命令,获取输出后立即向用户汇报结果或进入下一步

快速开始

# 设置工作目录变量
SAFETY_DIR=~/.qoderwork/skills/safety-checker

# 安装依赖
pip install -r $SAFETY_DIR/scripts/requirements.txt

# 验证连通性(依赖默认凭证链,无需手动设置凭证)
python3 $SAFETY_DIR/verify_auth.py

工作流

Step 1: 确认业务场景

通过对话了解用户业务类型,从预定义场景中选择最匹配的:

场景ID名称适用场景
ai_companion_chatAI陪聊/虚拟伴侣AI角色扮演、情感陪伴
game_chat游戏聊天室游戏内公聊、组队频道
general_chat通用Chat/社交IM私聊群聊、论坛
ecommerce零售电商商品评价、描述、客服
news_content资讯/新闻新闻平台、自媒体
# 查看所有场景(使用绝对路径)
python3 ~/.qoderwork/skills/safety-checker/scenario_manager.py list

# 查看某个场景的配置详情(执行一次后直接将输出呈现给用户)
python3 ~/.qoderwork/skills/safety-checker/scenario_manager.py show <场景ID>

完成条件:命令输出场景信息后,直接将结果展示给用户并询问是否需要调整。不要重复执行同一命令。

Step 2: 配置控制台标签开关

方式A: 浏览器自动化(推荐)

python3 ~/.qoderwork/skills/safety-checker/console_automator.py --scenario <场景ID>

脚本自动完成:打开控制台 → 引导用户登录 → 复制Service → 逐个配置标签开关 → 保存。

方式B: 生成操作指南,用户手动配置

python3 ~/.qoderwork/skills/safety-checker/scenario_manager.py guide <场景ID>

生成详细的 Markdown 操作指南。配置保存后等待 2-5 分钟生效。

Step 3: 准备测试样本

样本支持 JSON / CSV / Excel 格式。如果是小说/长文本,自动切分:

python3 ~/.qoderwork/skills/safety-checker/prepare_novel.py /path/to/novel.txt --max-samples 100

样本 JSON 格式:

{
  "samples": [{
    "sample_id": "text_001",
    "modality": "text",
    "content": "待审核文本",
    "data_id": "自定义ID",
    "category": "分类标签",
    "expected_risk_level": "期望风险等级(可选)",
    "expected_labels": ["期望标签(可选)"]
  }]
}
Step 4: 运行审核测试
python3 ~/.qoderwork/skills/safety-checker/main.py run --samples <样本文件> \
  --text-services <自定义Service名> \
  --concurrent 10 --format xlsx
Step 5: 人工标注
python3 ~/.qoderwork/skills/safety-checker/main.py annotate --file results/results_batch_xxx.json --annotator "姓名"

交互标注选项:c=正确、fp=误判、fn=漏判、u=不确定、s=跳过、q=退出保存。

Step 6: 生成对齐分析报告
python3 ~/.qoderwork/skills/safety-checker/main.py report --file results/annotated_xxx.xlsx

报告包含:按服务的准确率/误判率/漏判率、按模态分析、按类别分析。

输入输出示例

文本审核 - 输入
{
  "samples": [
    {"sample_id": "t001", "modality": "text", "content": "今天天气真不错,适合出去玩", "category": "normal"}
  ]
}
文本审核 - 输出
{
  "sample_id": "t001",
  "risk_level": "none",
  "labels": [],
  "request_id": "A216D7F5-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
  "latency_ms": 120
}
异常处理
  • 凭证未配置:verify_auth.py 返回明确错误提示,指引用户检查默认凭证链配置
  • Region 不可用:SDK 返回 InvalidRegionId 错误时,脚本提示切换至 cn-shanghai 或 cn-beijing
  • 超时:默认 read_timeout=30s,大文本/图片场景可通过 --timeout 参数调整
  • API 限流:429 状态码时自动指数退避重试(最多 3 次),并在结果中标记受影响样本

AI安全护栏测试

功能概述

AI安全护栏是面向大模型应用和AI Agent的安全防护方案,支持三大检测维度:

防护维度返回字段说明默认状态
内容合规Result / RiskLevel检测色情、暴力、政治等不良内容默认启用
敏感内容检测SensitiveResult / SensitiveLevel检测身份证号、信用卡号、手机号等PII数据需手动开启,单独计费
提示词攻击检测AttackResult / AttackLevel检测提示词注入、越狱等恶意攻击需手动开启,单独计费
Step G1: 开通AI安全护栏服务
  1. 前往 AI安全护栏产品开通页面 开通服务(按量后付费)
  2. 为RAM用户授权 AliyunYundunGreenWebFullAccess 权限
  3. 登录 AI安全护栏控制台,在 防护配置 → 检测项配置 中确认三大检测维度开关状态

重要:敏感内容检测和提示词攻击检测默认关闭,需在控制台手动开启,且单独计费。如未开启,对应返回字段(SensitiveResult/AttackResult)将为空。

Step G2: 运行护栏效果测试
# 运行默认测试套件(20个样本:10个输入检测+10个生成检测)
python3 ~/.qoderwork/skills/safety-checker/ai_guardrail.py

# 仅测试AI输入检测
python3 ~/.qoderwork/skills/safety-checker/ai_guardrail.py --service query

# 仅测试AI生成检测
python3 ~/.qoderwork/skills/safety-checker/ai_guardrail.py --service response

# 指定输出文件
python3 ~/.qoderwork/skills/safety-checker/ai_guardrail.py --output results/my_guardrail_test.json

# 输出Excel三Sheet报告(详细结果 + 服务汇总 + 三维度拆解)
python3 ~/.qoderwork/skills/safety-checker/ai_guardrail.py --format xlsx

# 同时输出JSON和XLSX
python3 ~/.qoderwork/skills/safety-checker/ai_guardrail.py --format both

# 输出暗色主题 HTML 可视化报告(三维度卡片 + 逐样本表格 + 自动洞察)
python3 ~/.qoderwork/skills/safety-checker/ai_guardrail.py --format html

# 通过一站式入口调用
python3 ~/.qoderwork/skills/safety-checker/cst.py guardrail
python3 ~/.qoderwork/skills/safety-checker/cst.py guardrail --service query --format xlsx
Step G3: 使用自定义样本测试
{
  "query": [
    {"name": "测试名称", "content": "待检测文本", "expected_risk_level": "high"}
  ],
  "response": [
    {"name": "测试名称", "content": "待检测文本", "expected_risk_level": "none"}
  ]
}
python3 ~/.qoderwork/skills/safety-checker/ai_guardrail.py --samples assets/my_guardrail_samples.json
Step G4: 解读测试结果

AI安全护栏返回三大维度的检测结果:

RiskLevel(内容合规风险等级):

  • none:未检测到风险
  • low:低风险(建议日常按无风险处理)
  • medium:中风险(建议人工复查)
  • high:高风险(建议直接处置)

SensitiveLevel(敏感信息等级):

  • S0:未检出敏感内容
  • S1~S4:数字越高敏感程度越高

AttackLevel(攻击等级):

  • none:未检测到攻击
  • low/medium/high:攻击风险等级
Step G5: 漏判根因分析

当测试结果出现漏判时,按以下逻辑排查:

漏判场景可能根因排查方法补救方案
SensitiveResult 全部为空敏感内容检测维度未开启检查控制台检测项配置控制台 → 防护配置 → 检测项配置 → 开启"敏感内容检测"
AttackResult 全部为空提示词攻击检测维度未开启检查控制台检测项配置控制台 → 防护配置 → 检测项配置 → 开启"提示词攻击检测"
色情意图被漏判模型侧重内容描写而非意图对比"包含色情描写"vs"索取色情资源"配置自定义词库加黑"色情图片"等关键词
提示词注入被归为违禁行为攻击检测未开启,仅内容合规生效检查AttackLevel是否为N/A开启提示词攻击检测
歧视/隐喻被漏判对应标签未开启或模型灵敏度不足检查inappropriate_discrimination标签状态控制台开启标签+补充自定义词库
默认测试样本覆盖范围

AI输入检测(query_security_check)10个样本:正常问候、政治敏感、色情内容、辱骂攻击、赌博引流、提示词注入(忽略指令型)、提示词注入(角色扮演型)、越狱诱导、敏感信息(身份证号)、歧视偏见

AI生成检测(response_security_check)10个样本:正常回答、生成敏感信息(信用卡号)、生成敏感信息(手机号)、生成敏感信息(邮箱)、生成违规内容(毒品制作)、生成违规内容(暴力教学)、生成歧视内容、生成虚假信息、生成色情内容、生成暴恐内容

AI-Mode 与 SDK 配置声明

本 Skill 使用阿里云 Python SDK 调用内容安全服务。references/console-guide.md 中包含 aliyun CLI 示例仅用于手动调试,不作为自动化调用链路。

aliyun CLI AI-Mode 配置

本 Skill 主要通过 Python SDK 调用,不依赖 AI-Mode 插件。references/console-guide.md 中的 aliyun CLI 命令仅用于手动调试参考。AI-Mode 生命周期管理命令如下:

# 启用 AI-Mode
aliyun configure ai-mode enable

# 设置 User-Agent
aliyun configure ai-mode set-user-agent --user-agent "AlibabaCloud-Agent-Skills/alibabacloud-safety-checker"

# 禁用 AI-Mode
aliyun configure ai-mode disable

# 更新插件
aliyun plugin update

当前状态:AI-Mode 默认 disabled,本 Skill 不通过 AI-Mode 插件调用 CLI。系统命令(如 --help、configure)不设置 user-agent。

SDK 配置规范
  • SDK Config 已设置 user_agent="AlibabaCloud-Agent-Skills/alibabacloud-safety-checker"
  • SDK Config 已设置 read_timeout=30 和 connect_timeout=10
  • 所有 API 调用通过默认凭证链获取凭证(环境变量 → credentials 文件 → ECS RAM 角色),代码中不硬编码凭证

安全规范

  • 凭证通过默认凭证链自动获取,无需显式配置
  • 浏览器登录步骤引导用户手动完成,不自动输入密码
  • 每次控制台配置前向用户确认

参考资源

完整标签体系、审核服务列表及控制台操作指南请见 references/ 目录:

文件说明

文件说明
main.pyCLI主入口(run/annotate/report)
ai_guardrail.pyAI安全护栏效果测试(输入检测+生成检测,支持JSON/XLSX输出)
cst.py一站式入口(init/configure/test/annotate/report/guardrail/status/full)
scenarios.py场景模板和标签配置矩阵
console_automator.py控制台浏览器自动化
scenario_manager.py场景管理工具
prepare_novel.py长文本预处理
verify_auth.py凭证链连通性验证

コメント