
Практическая платформа для лаборатории по безопасности ИИ с более чем 50 сценариями, охватывающими внедрение промптов, эксплуатацию агентных систем, манипуляцию моделями и атаки на границы доверия MCP. Использует Ollama + FastAPI + React для безопасной практики нападения и защиты.
AIVP — это практическая платформа для лабораторных работ по безопасности ИИ, охватывающая 4 фазы и 50+ лабораторных работ (на данный момент в кодовой базе 50+ сценариев). Она объединяет Ollama + Llama 3.1, бэкенд на FastAPI и фронтенд на React/Vite, позволяя специалистам безопасно отрабатывать атакующие и защитные техники безопасности ИИ.
Если этот проект вам помог, пожалуйста, ⭐ поставьте звезду / отметьте репозиторий, форкните его и смело открывайте PR!
Используйте отдельное руководство по запуску: RUN_STEPS.md. В нём описаны ручной (Vite + uvicorn) и Docker (nginx + API + Redis, Ollama на хосте) способы запуска, включая предварительные требования для стабильного доступа к лабораторным работам.
Поведение конфигурации строгое в активных путях выполнения: отсутствие обязательных значений env может привести к сбою запуска — это сделано намеренно.
Платформа охватывает четыре учебных трека:
Каждая лабораторная работа использует динамические секреты и явную проверку, чтобы вы могли убедиться в успешности эксплуатации в безопасной среде.
Только в образовательных целях — Лабораторные работы моделируют атакующие и защитные сценарии безопасности ИИ на локальных системах. Не направляйте атаки на реальные сервисы, данные или инфраструктуру, которыми вы не владеете или на тестирование которых у вас нет явного разрешения. Секреты в этих лабораторных работах синтетические и регенерируются для каждой работы; это не рабочие учётные данные. Используйте на свой страх и риск. Никаких гарантий не предоставляется.
POST /api/labs/{lab}/chatХотя бы один раз загрузите модель:
ollama pull llama3.1(или другой совместимый с llama3.1 вариант, который вам нравится)
apps/
api/ # FastAPI backend (SSE -> Ollama)
main.py
requirements.txt
.env.example
web/ # React + Vite frontend
src/
.env.example
Совет: 16 ГБ системной ОЗУ достаточно; 32 ГБ дают комфортный запас для браузера, Node, Python и IDE.
Из корня репозитория (папки, содержащей apps\api и apps\web):
# 0) Ensure the model is available
ollama pull llama3.1
# 1) Backend venv + deps + run
cd apps/api
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
copy .env.example .env
uvicorn main:app --reload --port 8000
Откройте новое окно PowerShell для фронтенда:
cd apps/web
npm install
copy .env.example .env
npm run dev # http://localhost:5173
# 0) Model
ollama pull llama3.1
# 1) Backend
cd apps/api
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
uvicorn main:app --reload --port 8000
В другом терминале:
cd apps/web
npm install
cp .env.example .env
npm run dev # http://localhost:5173
ollama serve, если необходимо).ollama pull llama3.1.:8000.:5173.Фронтенд получает потоковые Server-Sent Events (SSE) от бэкенда; убедитесь, что CORS-источники в
apps/api/.envвключаютhttp://localhost:5173.
Принимаемые форматы ID лабораторных работ (бэкендом): PI-01, PI_01, pi01, p01 → все нормализуются к PI_01.
Динамические секреты создаются при первом использовании лабораторной работы после перезапуска бэкенда. Вы также можете сбросить секрет:
POST /api/secrets/reset/{labId}
Секрет каждой лабораторной работы уникален и регенерируется при перезапуске бэкенда (в памяти). Если нужна персистентность, рассмотрите хранение в файле/БД.
apps/api/.env)