Skip to content

mart1ny/AI_Detox

Repository files navigation

Детоксикация текста

📋 Описание проекта

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

Ключевые возможности:

  • 👥 Регистрация и авторизация пользователей
  • 📝 Создание и публикация комментариев
  • 📰 Автоматическая детоксикация введенного текста

🚀 Технологии

  • Frontend: React, JavaScript
  • Backend: FastAPI, GO
  • База данных: PostgreSQL
  • Детоксикация текста: модель детоксикации текста
  • Построение модели: Torch, Transformers
  • Обработка датасета: Pandas, Datasets

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

📦 Detoxic_Comments
┣ 📂 backend                     # Бэкенд-сервер на Go + Python
┃ ┣ 📂 go                        # Точка входа Go-приложения
┃ ┃ ┣ 📂 cmd/server              # Точка входа Go-приложения
┃ ┃ ┃ ┗ 📜 main.go               # Запуск HTTP-сервера
┃ ┃ ┣ 📂 internal                # Внутренние модули Go-приложения
┃ ┃ ┃ ┣ 📂 db                    # Работа с базой данных
┃ ┃ ┃ ┃ ┗ 📜 conn.go             # Подключение и инициализация базы данных
┃ ┃ ┃ ┣ 📂 handler               # HTTP-хендлеры (обработка запросов)
┃ ┃ ┃ ┃ ┣ 📜 comment.go
┃ ┃ ┃ ┃ ┗ 📜 user.go
┃ ┃ ┃ ┗ 📂 model                 # Структуры моделей
┃ ┃ ┃   ┣ 📜 predict.go          # Детоксикация текста
┃ ┃ ┃   ┗ 📜 user.go             # Инициализация базы
┃ ┃ ┣ 📜 init.sql                # SQL-скрипт для инициализации БД
┃ ┃ ┣ 📜 go.mod                  # Go-модули
┃ ┃ ┗ 📜 go.sum
┃ ┣ 📂 models/ruT5-base          # Предобученная модель ruT5 для анализа токсичности
┃ ┃ ┣ 📜 config.json
┃ ┃ ┣ 📜 old_spiece.model
┃ ┃ ┣ 📜 pytorch_model.bin
┃ ┃ ┣ 📜 special_tokens_map.json
┃ ┃ ┣ 📜 spiece.model
┃ ┃ ┗ 📜 tokenizer_config.json
┃ ┣ 📂 venv                     # Виртуальное окружение Python (игнорируется Git)
┃ ┣ 📂 .gitignore                     
┃ ┣ 📜 app.py                   # Python-интерфейс для работы с моделью ruT5
┃ ┗ 📜 requirements.txt         # Зависимости Python
┣ 📂 frontend                    # Веб-интерфейс на React
┃ ┣ 📂 public                   # Статичные файлы (HTML-шаблон)
┃ ┃ ┗ 📜 index.html
┃ ┣ 📂 src                      # Исходный код React-приложения
┃ ┃ ┣ 📂 API                    # API-запросы к бэкенду (fetch/axios)
┃ ┃ ┃ ┣ 📜 auth.js             # Авторизация и регистрация
┃ ┃ ┃ ┗ 📜 index.js            # Общие запросы
┃ ┃ ┣ 📂 components            # Переиспользуемые UI-компоненты
┃ ┃ ┃ ┣ 📜 AppRouter.jsx       # Роутинг
┃ ┃ ┃ ┣ 📜 ArticleItem.jsx     # Отображение статьи
┃ ┃ ┃ ┣ 📜 Comment.jsx         # Отображение комментариев в профиле
┃ ┃ ┃ ┣ 📜 CommentPost.jsx     # Отображение комментариев в посте
┃ ┃ ┃ ┣ 📜 Footer.jsx          # Компонент футера
┃ ┃ ┃ ┣ 📜 Navbar.jsx          # Навбар
┃ ┃ ┃ ┗ 📜 ToxicMeter.jsx      # Индикатор токсичности комментария
┃ ┃ ┣ 📂 context               # React Context API
┃ ┃ ┃ ┗ 📜 AuthContext.jsx     # Контекст аутентификации пользователя
┃ ┃ ┣ 📂 pages                 # Страницы приложения
┃ ┃ ┃ ┣ 📜 ArticlePage.jsx     # Страница статьи с комментариями
┃ ┃ ┃ ┣ 📜 Auth.jsx            # Логин/регистрация
┃ ┃ ┃ ┣ 📜 MainPage.jsx        # Главная страница
┃ ┃ ┃ ┗ 📜 Profile.jsx         # Профиль пользователя
┃ ┃ ┣ 📂 styles                # CSS-модули для компонентов
┃ ┃ ┃ ┣ 📜 *.module.css        # Отдельный стиль под каждый компонент
┃ ┃ ┣ 📂 UI                    # Шрифты и иконки
┃ ┃ ┃ ┣ 📂 font
┃ ┃ ┃ ┗ 📂 icons
┃ ┃ ┣ 📂 utils                 # Вспомогательные функции
┃ ┃ ┃ ┣ 📜 consts.js           # Константы
┃ ┃ ┃ ┗ 📜 formatDate.js       # Форматирование дат
┃ ┃ ┣ 📜 App.js                # Корневой компонент React-приложения
┃ ┃ ┣ 📜 index.js              # Точка входа React
┃ ┃ ┣ 📜 index.css             # Глобальные стили
┃ ┃ ┗ 📜 routes.js             # Объявление роутов
┃ ┣ 📜 .gitignore
┃ ┣ 📜 package.json            # Зависимости frontend
┃ ┗ 📜 package-lock.json
┣ 📜 .gitignore
┣ 📜 docker-compose.yml        # Запуск проекта
┣ 📜 Dockerfile.fastapi        # Dockerfile для backend FastAPI
┣ 📜 Dockerfile.frontend       # Dockerfile для frontend React
┣ 📜 Dockerfile.go             # Dockerfile для backend Go
┗ 📜 README.md

🏗️ Как запустить проект

⚙️ Настройка переменных окружения

Перед запуском проекта необходимо создать файл .env в корневой директории и указать в нём параметры подключения к базе данных:

DB_HOST=go_db
DB_USER=your_username
DB_PASSWORD=your_password
DB_NAME=your_database
DB_PORT=5432

Замените значения на соответствующие вашей конфигурации. Этот файл будет использоваться docker-compose и приложением для подключения к базе данных.

Примечание: Убедитесь, что файл .env находится в той же директории, откуда вы запускаете docker-compose, чтобы переменные были корректно загружены.

git clone https://github.com/shadxwkxw/Detoxic_Comments.git

cd Detoxic_Comments

docker-compose up --build -d # Сборка и запуск проекта 

docker-compose down # Остановка и удаления контейнеров

About

AI_Detox is a full-stack app that analyzes and reduces toxic comments. It uses React (frontend), Go + FastAPI (backend), PostgreSQL, and a ruT5-based NLP model with PyTorch/Transformers.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors