23EG106B34/AI-Red-Team-Guardrail-Testing-Platform
GitHub: 23EG106B34/AI-Red-Team-Guardrail-Testing-Platform
面向大语言模型的生产级 AI 红队测试与护栏验证平台,提供自动化对抗性攻击模拟、RAG 安全知识库、风险评分和合规报告生成。
Stars: 0 | Forks: 0
# Sentinel Red AI
生产就绪的 AI 红队与护栏测试平台,基于 Next.js 15、TypeScript、Tailwind CSS、shadcn 风格 UI 组件、FastAPI、PostgreSQL/Neon、ChromaDB、兼容 LangGraph 的工作流架构、RAGAS 风格的评估指标、JWT 认证、加密的 API key 存储、PDF/DOCX 报告、审计日志以及可部署的配置构建。
## 应用
- `frontend/`:基于 Next.js 15 App Router 的 SaaS UI,提供身份验证、仪表板、红队测试、攻击库、报告、后台管理、主题持久化、命令面板、通知提示、响应式布局和图表。
- `backend/`:FastAPI API,提供 JWT 身份验证、RBAC、加密的 key vault、攻击库、红队工作流、RAG 安全知识库、风险评分、报告生成、分析和审计追踪。
## 快速开始
```
npm install
python -m venv backend/.venv
backend/.venv/Scripts/activate
pip install -r backend/requirements.txt
copy frontend\.env.example frontend\.env.local
copy backend\.env.example backend\.env
npm run backend:dev
npm run dev
```
默认初始化的管理员:
- Email: `admin@sentinel.dev`
- Password: `AdminPass123!`
## 环境
前端:
```
NEXT_PUBLIC_APP_URL=https://your-vercel-app.vercel.app
NEXT_PUBLIC_API_URL=https://your-api.railway.app
```
后端:
```
FRONTEND_ORIGIN=https://your-vercel-app.vercel.app
DATABASE_URL=postgresql+psycopg://USER:PASSWORD@HOST/neondb?sslmode=require
JWT_SECRET=replace-with-a-long-random-secret
FERNET_KEY=generate-with-python-cryptography-fernet
CHROMA_PATH=./chroma
REPORT_BASE_URL=https://your-api.railway.app
RATE_LIMIT=120/minute
```
生成 `FERNET_KEY`:
```
python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())"
```
## 架构
```
flowchart LR
UI["Next.js App Router UI"] --> API["FastAPI REST API"]
API --> Auth["JWT + RBAC"]
API --> DB["Neon PostgreSQL"]
API --> Vault["Encrypted API Key Vault"]
API --> Agents["LangGraph-style Multi-Agent Workflow"]
Agents --> RAG["ChromaDB Security RAG"]
Agents --> Risk["Risk + RAGAS Metrics"]
Risk --> Reports["PDF/DOCX Reports"]
```
## 部署
Vercel 前端:
1. 将项目根目录设置为 `frontend`。
2. 添加 `NEXT_PUBLIC_APP_URL` 和 `NEXT_PUBLIC_API_URL`。
3. 使用包含的 `vercel.json` 进行部署。
Railway/Render 后端:
1. 将根目录设置为 `backend`。
2. 添加 `backend/.env.example` 中的变量。
3. 使用 `uvicorn app.main:app --host 0.0.0.0 --port $PORT` 或包含的 `Procfile`。
4. 将 `DATABASE_URL` 指向 Neon PostgreSQL。
## 截图
在首次部署后添加截图:
- `docs/screenshots/dashboard.png`
- `docs/screenshots/tests.png`
- `docs/screenshots/library.png`
- `docs/screenshots/admin.png`
## 安全功能
- 使用 bcrypt 进行密码哈希处理。
- JWT bearer 身份验证。
- 用户、研究员和管理员 RBAC。
- 使用 Fernet 加密的提供商 API key 存储。
- 提示注入标记检测。
- 请求速率限制。
- CORS 锁定到配置的前端源。
- 带有参数化查询的 SQLAlchemy 模型。
- 针对身份验证、测试和 key vault 变更的审计追踪。
- 基于环境的机密信息和生产部署配置。
标签:AI红队, AV绕过, FastAPI, LangGraph, RAG, 大语言模型安全, 护栏测试, 机密管理, 测试用例, 自动化攻击, 逆向工具, 零日漏洞检测