CoolFace
Apppublic

DS111viktor/URFU_Software_Engineering_VK_Bots_front

sourceHugging Faceupdated 1y agoView on Hugging Face
0likes
App README

URFUSoftwareEngineeringVKBots

Описание

VK Bot Classifier — это приложение для классификации пользователей социальной сети ВКонтакте на основе их данных и социального графа. Приложение использует машинное обучение для определения вероятности того, что аккаунт является ботом.

Возможности

  • Анализ профиля пользователя ВКонтакте
  • Построение социального графа (друзья и друзья друзей)
  • Расчет статистических характеристик графа
  • Предсказание вероятности того, что пользователь является ботом
  • REST API для интеграции с другими сервисами
  • Веб-интерфейс для удобного взаимодействия

Технологии

  • Python 3.10
  • FastAPI (REST API)
  • Gradio (веб-интерфейс)
  • NetworkX (анализ графов)
  • Scikit-learn (машинное обучение)
  • Pandas (обработка данных)
  • VK API (получение данных пользователей)

Быстрый старт (облачная версия)

Перейдите по ссылке: https://huggingface.co/spaces/DS111viktor/URFUSoftwareEngineeringVKBots_front

Введите в поле:

  • ID пользователя (id123456789)
  • Короткое имя (durov)
  • Ссылку (https://vk.com/id1)

Получите результат вида:

text
✅ Пользователь — бот (вероятность: 0.83)

Локальная установка (опционально)

Требования

  • Python 3.10
  • Docker (опционально)

Установка

  1. 1.Клонируйте репозиторий:
bash
git clone <репозиторий>
cd <папка_проекта>
  1. 1.Создайте и активируйте виртуальное окружение:
bash
python -m venv venv
source venv/bin/activate  # Linux/MacOS
venv\Scripts\activate  # Windows
  1. 1.Установите зависимости:
bash
pip install -r requirements.txt
  1. 1.Создайте файл .env и добавьте ваш токен VK API:
text
VK_API_TOKEN=ваш_токен

Запуск

Вариант 1: Локальный запуск

  1. 1.Запустите FastAPI приложение:
bash
uvicorn app.main:app --host 0.0.0.0 --port 7860
  1. 1.Запустите Gradio интерфейс (в другом терминале):
bash
python gradio_app.py

Вариант 2: Запуск через Docker

  1. 1.Соберите Docker образ:
bash
docker build -t vk-bot-classifier .
  1. 1.Запустите контейнер:
bash
docker run -p 7860:7860 vk-bot-classifier

Использование

Веб-интерфейс

Откройте в браузере http://localhost:7860 и введите ID пользователя ВКонтакте в формате:

id123456789

username

https://vk.com/id123456789

https://vk.com/username

REST API

Эндпоинты

  • POST /predict/ - основной эндпоинт для предсказания
json
{
  "uid": "id123456789"
}
  • GET /health/ - проверка работоспособности сервиса
  • GET / - информационное сообщение

Пример запроса

bash
curl -X POST "http://localhost:7860/predict/" \
  -H "Content-Type: application/json" \
  -d '{"uid": "id1"}'

Пример ответа

json
{
  "uid": "id1",
  "prediction": 1,
  "probability": 0.95,
  "message": "The user is a bot with probability 0.95"
}

Тестирование

Для запуска тестов выполните:

bash
pytest

Тесты включают:

  • Unit-тесты для функций расчета возраста и преобразования данных
  • Тесты для работы с графами
  • Тесты API эндпоинтов
  • Тесты работы с VK API

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

text
.
├── app/                      # Основной код приложения
│   ├── __init__.py
│   ├── features.py           # Извлечение и преобразование признаков
│   ├── graph_utils.py        # Работа с социальным графом
│   ├── main.py               # FastAPI приложение
│   ├── model.py              # Загрузка модели и предсказание
│   └── vk_api.py             # Работа с VK API
├── model/                    # Модели машинного обучения
│   ├── model.pkl
│   └── model.zip
├── tests/                    # Тесты
│   ├── __init__.py
│   ├── locustfile.py         # Нагрузочное тестирование
│   ├── test_features.py
│   ├── test_graph_utils.py
│   ├── test_main.py
│   ├── test_prediction.py
│   └── test_vk_api.py
├── .env                      # Переменные окружения
├── .gitattributes
├── .gitignore
├── Dockerfile                # Конфигурация Docker
├── README.md                 # Документация
├── gradio_app.py             # Веб-интерфейс
└── requirements.txt          # Зависимости