interview_with_AI

0

Описание

Языки

  • Python43,4%
  • JavaScript33,1%
  • Roff15%
  • CSS8,2%
  • Dockerfile0,2%
  • HTML0,1%
4 месяца назад
4 месяца назад
4 месяца назад
4 месяца назад
4 месяца назад
README.md

🤖 VibeCode Jam 🎸 — AI Платформа для технических собеседований

VibeCode Jam — это современная и полностью автоматизированная система для проведения технических собеседований без участия живого рекрутера. Платформа позволяет проводить полный цикл оценки кандидата: от проверки Soft Skills и теоретических знаний до выполнения практических задач с написанием кода в реальном времени.

Система проверяет Soft Skills, теоретические знания и навыки программирования, используя искусственный интеллект. Платформа отличается стильным интерфейсом (Glassmorphism), встроенным Code Runner для безопасного запуска кода в изолированных контейнерах и модулем Anti-Cheat телеметрии.

Status Docker FastAPI React

✨ Возможности

👨‍💻 Для Кандидатов (Процесс собеседования)

  • Мультиязычность: Поддержка интервью для Python, JavaScript, Java, C++, Go.
  • Многоэтапное собеседование:
    1. Soft Skills Check: Ситуационные вопросы для проверки поведения и командной работы (Quiz-формат).
    2. AI Теория: Умный чат-бот задает вопросы, оценивает ответы и задает уточняющие вопросы (Follow-up) в чат-интерфейсе.
    3. Code Runner (Live Coding): Встроенная IDE (Monaco Editor) с безопасным запуском кода в изолированных Docker-контейнерах и выводом результатов терминала.
  • Личный кабинет: Загрузка резюме (PDF) и выбор вакансии.

🕵️ Для HR и Рекрутеров (Управление)

  • Дашборд: Управление списком кандидатов, фильтрация, сортировка.
  • Конструктор Вакансий: Создание вакансий с привязкой к уровню (Junior/Middle/Senior) и стеку.
  • Конструктор Задач: Создание задач по кодингу (с предзаполненным кодом) и теоретических вопросов. Настройка окружения (Basic Python / Data Science).
  • Аналитика: Формирование детального итогового отчета с баллами, саммари по кандидату и Anti-Cheat метриками.
  • AI Code Review: Автоматический анализ кода (стиль, функциональность) и генерация Unit-тестов.

🛠 Технический стек

Frontend

  • React (Vite)
  • React Router — навигация и защита роутов.
  • Monaco Editor — редактор кода (как в VS Code).
  • Axios — взаимодействие с API.
  • CSS Modules — кастомный Glassmorphism дизайн без использования UI-библиотек.

Backend

  • Python 3.12, FastAPI — высокопроизводительный REST API.
  • SQLModel (SQLAlchemy + Pydantic) — ORM для работы с БД.
  • Docker SDK — для запуска пользовательского кода в изолированных контейнерах (Docker-in-Docker).

AI & Logic

  • OpenAI API (или совместимые сервисы).
  • LangChain (опционально).
  • Кастомные промпты для генерации вопросов и оценки ответов.

Database & Cache

  • SQLite — база данных (хранение данных, хранится в файле
    vibecode.db
    ).
  • Redis — кэширование контекста диалогов.

Infrastructure

  • Docker
  • Docker Compose (оркестрация).

🚀 Установка и запуск

Предварительные требования

  • Установленный Docker Desktop (или Docker на Linux).
  • Git.
  • Ключ OpenAI API (или совместимого сервиса).

Шаг 1: Клонирование репозитория

Шаг 2: Настройка переменных окружения (API Key)

В файле

backend/main.py
(или создайте
.env
файл в папке
backend
) убедитесь, что указан ваш API ключ:

Шаг 3: Запуск через Docker Compose

В корне проекта выполните команду:

Первый запуск может занять несколько минут, пока скачиваются образы.

Шаг 4: Доступ к приложению

После успешного запуска откройте в браузере:


Альтернативная установка (Для Linux)

Установка на RedOS 8

  1. Установка Docker
  2. Даём права пользователю для запуска не привилегированных контейнеров
    Проверить работу непривилегированных контейнеров можно запустив тестовый контейнер
  3. Клонируем и выполняем сборку (Шаги 1 и 3 выше)

Установка на Debian/Ubuntu

  1. Обновляем систему и устанавливаем сертификаты
  2. Добавляем репозиторий Docker
  3. Обновляем список пакетов и устанавливаем Docker
  4. Создаём группу для Docker и добавляем пользователя
    Проверить работу непривилегированных контейнеров можно запустив тестовый контейнер
  5. Клонируем и выполняем сборку (Шаги 1 и 3 выше)

📂 Структура проекта

🐛 Возможные проблемы и решения

1. Ошибка сети при сборке (
TLS handshake timeout
)

Если Docker не может скачать образы:

  • Зайдите в настройки Docker Desktop -> Docker Engine.
  • Добавьте DNS Google:
  • Перезапустите Docker.

2. Ошибка Code Runner (
No such file or directory
)

Если при запуске кода возникает ошибка с путями:

  • Убедитесь, что в
    docker-compose.yml
    у сервиса
    backend
    прописан volume:
  • Попробуйте пересоздать контейнер бэкенда:

3. База данных пуста / Нет вопросов

Вопросы должны заливаться автоматически при старте. Если их нет:

  • Зайдите в контейнер бэкенда:
  • Запустите скрипт вручную:

🐳 Изоляция кода (Docker Code Runner)

При нажатии кнопки "Run Code" на фронтенде:

  1. Код отправляется на бэкенд.
  2. Бэкенд создает временный файл.
  3. Через Docker SDK запускается контейнер (
    python:3.12-alpine
    или
    slim
    для DS).
  4. Контейнер выполняется с ограничением ресурсов (CPU/RAM) и без доступа к сети, обеспечивая полную безопасность.
  5. Логи (stdout/stderr) возвращаются на фронтенд.

🛡 Anti-Cheat Система (Integrity Check)

Система собирает телеметрию во время прохождения теста кандидатом. Эти данные используются для вычисления Integrity Score (показателя честности):

  1. Focus Lost: Сколько раз вкладка с тестом теряла фокус (например,
    alt-tab
    ).
  2. Mouse Left Window: Сколько раз курсор покидал область окна браузера.
  3. Large Pastes: Детекция вставки больших кусков кода (защита от
    Ctrl+C
    /
    Ctrl+V
    готовых решений).

👨‍💻 Авторы

Гречиков Клим - GitVerse Profile | Telegram