Skip to content

Kondachello/AI-interview

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AI-Powered Interview System

Платформа для автоматизированного проведения технических собеседований. Система объединяет в себе изолированную среду исполнения кода, нейросетевой анализ сложности алгоритмов и диалогового AI-агента для обеспечения полного цикла оценки кандидата без участия человека.

1. Архитектура системы

Проект построен на базе микросервисной логики, разделенной на три ключевых уровня:

  1. Client Layer: Интерактивная IDE (CodeMirror) и чат-интерфейс на нативном JS/CSS.
  2. API Layer: Высокопроизводительный бэкенд на FastAPI, управляющий бизнес-логикой и БД.
  3. Intelligence & Execution Layer:
    • Docker Sandbox: Изолированная среда для безопасного запуска кода.
    • Neural Scorer: Собственная модель на PyTorch для оценки уровня кода.
    • LLM Orchestrator: Агент на базе Llama 3.3 (via Groq) для ведения диалога и фидбека.

2. ML/AI Составляющая

Центральным узлом системы является гибридный аналитический движок, сочетающий классический статический анализ, нейронные сети и большие языковые модели.

2.1. Neural Code Ranker (PyTorch)

Для объективной оценки профессионального уровня кода (Junior/Middle/Senior) используется кастомная многослойная перцептронная сеть (MLP).

  • Модель: ComplexityNet (PyTorch).

  • Входные признаки (Feature Engineering):

    1. Loops Count: Количество циклов for/while.
    2. Nesting Depth: Максимальная глубина вложенности блоков (анализ индентации).
    3. Recursion Detection: Бинарный признак вызова функции внутри себя.
    4. Code Length: Общий объем символов (нормализованный).
    5. Complex Builtins: Использование функциональных примитивов (map, zip, lambda, yield).
  • Архитектура:

    Linear(5 -> 16) -> ReLU -> Linear(16 -> 8) -> ReLU -> Linear(8 -> 3)
  • Классификация:

    • Junior: Избыточная сложность при низкой эффективности.
    • Middle: Сбалансированный код, соответствующий стандартам.
    • Senior: Высокая степень оптимизации, использование продвинутых паттернов.

2.2. LLM Interviewer Agent (Groq/Llama 3)

Диалоговая подсистема использует модель Llama-3.3-70b через API Groq для обеспечения минимальной задержки (ultra-low latency).

  • Функции агента:
    • Context-Aware Chat: Ответы на вопросы кандидата с учетом текущей задачи и написанного кода.
    • Hint System: Предоставление наводящих подсказок без раскрытия прямого решения (Zero-Shot Chain of Thought).
    • Qualitative Feedback: Сопоставление результатов тестов Docker и вердикта нейросети PyTorch для формирования текстового отчета.

2.3. Алгоритм гибридной оценки

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

  1. Docker Execution: Проверка корректности (Boolean: Pass/Fail).
  2. PyTorch Prediction: Оценка структурного уровня (Categorical: Level).
  3. LLM Synthesis: Генерация вердикта (Textual: Recommendation).

3. Технологический стек

Backend

  • Framework: FastAPI.
  • Database: SQLite + SQLAlchemy (ORM).
  • Containerization: Docker (индивидуальные образы sandbox-python, sandbox-cpp).
  • Security: Ограничение ресурсов (CPUs=0.5, Memory=256m) и запрет сетевого доступа для контейнеров.

ML Stack

  • Core: PyTorch 2.0+.
  • Inference: CPU-optimized tensors.
  • LLM Provider: Groq Cloud SDK (OpenAI Compatible).

Frontend

  • Editor: CodeMirror 5 (с поддержкой Python, C++, Java).
  • Reporting: HTML2PDF для генерации официальных сертификатов/отчетов.

4. Безопасность и Sandbox

Для защиты системы от вредоносного кода (RCE) используется многоуровневая изоляция:

  • Слой 1 (Docker): Код кандидата выполняется в контейнере без доступа к интернету (--network none).
  • Слой 2 (Resource Limits): Жесткие лимиты на PIDs (64) для защиты от Fork-бомб.
  • Слой 3 (Anti-Cheat): Встроенный JS-обработчик событий mouseout и visibilitychange, блокирующий интерфейс при попытке переключения окон или выхода курсора за пределы IDE.

5. Инсталляция и развертывание

Подготовка ML-модели

# Обучение классификатора
python backend/train_ai.py

Запуск окружения

Перейдите в папку docker-images и соберите оттуда:

cd backend\app\problems_manager\code_run_and_check\docker-images

docker build -t sandbox-cpp:latest -f cpp/Dockerfile .

docker build -t sandbox-python:latest -f python/Dockerfile .

Перейдите в папку backend и создайте там .env с вашим ключом:
GROQ_API_KEY=<key>

python3 -m venv venv
source venv/bin/activate
pip install -r backend/requirements.txt
cd backend
uvicorn app.main:app --reload --port 5000
cd frontend
python3 -m http.server 5500
site: http://127.0.0.1:5500

6. API Endpoints (AI focus)

  • POST /api/run_code: Принимает код, запускает Docker, вызывает PyTorch Ranker и возвращает вердикт LLM.
  • POST /api/chat: Точка входа для диалогового агента. Передает текущий current_state (задачу и код) для контекстуального ответа.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors