DankuJeff/ai-safety-toolkit

GitHub: DankuJeff/ai-safety-toolkit

基于 Claude API 构建的内容审核 Pipeline 与 LLM 红队安全评估框架,解决 AI 部署中的内容安全与模型对抗性评估问题。

Stars: 0 | Forks: 0

# AI 安全工具包 一个生产级 monorepo,包含基于 Claude API 构建的两个安全系统,旨在解决前沿 AI 部署中常见的内容完整性和安全评估缺失问题。 **作为填补 OpenAI TPM(技术项目经理)、安全系统工程职位要求的代表性作品集而构建。** ## 项目 ### GP-1 — 基于 Claude 的内容审核 Pipeline [`gp1-moderation/`](./gp1-moderation/) 一个 FastAPI 服务,可跨六种危害类别对文本进行分类,分配严重性评分 (1–5),并通过完整的 CRUD 操作管理申诉审核队列。 - **危害类别:** 仇恨言论、暴力、虚假信息、提示注入、自我伤害、非法活动 - **严重性评分:** 1 (边缘情况) → 5 (严重 / 立即造成现实世界伤害) - **申诉队列:** 基于 SQLite,支持软删除和审核员备注 - **技术栈:** Python 3.11、FastAPI、Claude API、SQLAlchemy、Pydantic v2 ### GP-2 — LLM 红队与安全评估框架 [`gp2-redteam/`](./gp2-redteam/) 一个对抗性评估框架,针对任何 Claude 模型运行精心策划的提示库,使用评估模型对响应进行评分,跟踪一段时间内的通过率,并在 React 仪表板中展示性能退化情况。 - **提示库:** 涵盖 7 个类别的 46 个对抗性提示,按严重性和预期行为进行标记 - **Claude-as-judge 评分:** 使用成本更低的 Haiku 模型评估目标模型响应是否通过 - **性能退化跟踪:** SQLite 运行历史记录、按类别划分的通过率、模型版本比较 - **仪表板:** React + Recharts — 覆盖率报告、类别细分、性能退化趋势图 - **技术栈:** Python 3.11、FastAPI、Claude API、SQLAlchemy、React 18、Vite、Tailwind、Recharts ## 共享基础设施 [`shared/`](./shared/) — 通用的危害分类法(枚举 + 定义)以及带有指数退避重试(3 次尝试:1 秒 / 2 秒 / 4 秒延迟)的 Claude API 客户端封装。 ## 架构 ``` ┌─────────────────────────────────────────────────────────────┐ │ Claude API │ │ (claude-sonnet-4-6 / claude-haiku-4-5) │ └───────────────────┬──────────────────┬──────────────────────┘ │ │ ┌───────────▼──────┐ ┌────────▼───────────────┐ │ GP-1 │ │ GP-2 │ │ Moderation │ │ Red-Teaming Eval │ │ Pipeline │ │ Framework │ │ │ │ │ │ ┌──────────────┐ │ │ ┌──────────────────┐ │ │ │ Harm │ │ │ │ Prompt Library │ │ │ │ Classifier │ │ │ │ (46 adversarial │ │ │ │ │ │ │ │ prompts / YAML) │ │ │ │ Severity 1-5 │ │ │ └────────┬─────────┘ │ │ └──────┬───────┘ │ │ │ │ │ │ │ │ ┌────────▼─────────┐ │ │ ┌──────▼───────┐ │ │ │ Eval Runner + │ │ │ │ Appeals │ │ │ │ Claude-as-Judge │ │ │ │ Review Queue │ │ │ │ Scorer │ │ │ │ (SQLite) │ │ │ └────────┬─────────┘ │ │ └──────────────┘ │ │ │ │ │ │ │ ┌────────▼─────────┐ │ │ REST API :8001 │ │ │ Run Tracker │ │ └──────────────────┘ │ │ (SQLite) │ │ │ └────────┬─────────┘ │ │ │ │ │ ┌────────▼─────────┐ │ │ │ React Dashboard │ │ │ │ :5173 / :8002 │ │ │ └──────────────────┘ │ └────────────────────────┘ ``` ## 设置 ``` # 复制环境模板 cp .env.example .env # 将您的 ANTHROPIC_API_KEY 添加到 .env # 安装 Python deps(每个 service) cd gp1-moderation && pip install -r requirements.txt cd ../gp2-redteam && pip install -r requirements.txt # 安装 dashboard deps cd gp2-redteam/dashboard && npm install ``` ## 运行 ``` # GP-1:Moderation API(端口 8001) cd gp1-moderation && python main.py # GP-2:运行 eval suite cd gp2-redteam && python run_eval.py # GP-2:Dashboard API + UI(端口 8001 / 5173) cd gp2-redteam && python main.py # API cd gp2-redteam/dashboard && npm run dev # Dev UI ``` ## 关键设计决策 **Claude-as-judge 评分** — GP-2 使用成本更低的 Haiku 模型来评估目标模型的响应是否符合预期行为(允许 / 警告 / 拒绝)。这将评估关注点与目标模型分离开来,实现了与模型无关的回归测试。 **共享危害分类法** — `HarmCategory` 和 `Severity` 枚举在 `shared/` 中定义一次,并由两个服务导入,从而确保分类和评估中的类别定义保持一致。 **软删除** — 所有申诉记录均使用 `deleted_at timestamptz` 而非硬删除,以保留审计历史。 **对抗性提示设计** — 每个提示都标记有 `expected_behavior`(允许 / 警告 / 拒绝)和 `severity`(1–5)。特别包含了安全类别的提示,以测量误报率 — 过度拒绝被视为一种失败,而非安全的默认设置。
标签:AI安全, Anthropic API, Apex, API安全, AV绕过, Chat Copilot, CISA项目, Claude, CVE检测, DLL 劫持, FastAPI, JSON输出, LLM评估, Naabu, Ollama, Pydantic, Python, React, Recharts, SQLAlchemy, Syscalls, Tailwind CSS, Vite, 人工智能, 内容安全, 内容审核, 前后端分离, 前端仪表盘, 合规性审查, 大模型安全, 大语言模型, 安全工具包, 安全工程, 安全系统, 密码管理, 对抗性测试, 无后门, 有害内容过滤, 机器学习, 模型回归测试, 猴子测试, 用户模式Hook绕过, 红队评估, 风险评级