add poetry, count_lines.py, .gitignore, README.md, LICENSE and TERMS.md
This commit is contained in:
@@ -0,0 +1,103 @@
|
||||
# db_neiro_filter
|
||||
|
||||
## Описание проекта
|
||||
Этот проект представляет собой систему модулей для идентификации и фильтрации нежелательного контента, интегрированную с ботами Telegram и Discord. Основной функционал системы заключается в автоматическом удалении и классификации сообщений, которые могут содержать спам, нецензурные выражения, или материалы категории 18+. Проект направлен на обеспечение безопасного и контролируемого взаимодействия пользователей в сообществах.
|
||||
|
||||
## Структура проекта
|
||||
Проект состоит из трех основных модулей: **core**, **telegram**, и **discord**. Каждый модуль выполняет свои задачи и взаимодействует с остальными для обеспечения бесперебойного функционирования системы.
|
||||
|
||||
### 1. Core
|
||||
Модуль **core** отвечает за идентификацию и классификацию нежелательного контента. Он включает в себя:
|
||||
|
||||
- **API**: Обеспечивает взаимодействие с пользователями и позволяет выполнять фильтрацию и управление данными.
|
||||
- **spam**: Нейросеть, предназначенная для классификации сообщений как спам или допустимый контент.
|
||||
- **mat**: Нейросеть, определяющая, содержит ли сообщение нецензурную лексику.
|
||||
- **18+**: Нейросеть, анализирующая сообщения на наличие контента категории 18+.
|
||||
- **mongodb**: База данных, в которой хранятся не обнаруженные ранее нежелательные сообщения, используемые для последующего дообучения нейросетей.
|
||||
|
||||
#### Структура базы данных:
|
||||
База данных состоит из коллекций, в которых хранится необнаруженный контент для последующего дообучения. Каждая коллекция включает данные о типе контента, источнике и добавившем пользователе.
|
||||
|
||||
### 2. Telegram
|
||||
Модуль **telegram** обеспечивает интеграцию с Telegram ботом для взаимодействия с пользователями и обработки контента. Включает в себя:
|
||||
|
||||
- **bot**: Обрабатывает поступающие сообщения и команды, передавая их на обработку в модуль **core**.
|
||||
- **команды**: Отправляют запросы к API модуля **core** для добавления не угодного контента и взаимодействия с базой данных.
|
||||
- **mongodb**: База данных, где хранятся все удалённые сообщения, с указанием времени и причины удаления.
|
||||
|
||||
#### Структура базы данных:
|
||||
База данных сохраняет информацию о пользователе, сообщения которого были удалены, включая текст, изображение, время удаления, ID пользователя и сведения о том, было ли удаление автоматическим или ручным.
|
||||
|
||||
### 3. Discord
|
||||
Модуль **discord** интегрирован с Discord ботом и аналогично модулю **telegram** выполняет обработку и классификацию контента:
|
||||
|
||||
- **bot**: Обрабатывает сообщения и команды, отправляя их на анализ в модуль **core**.
|
||||
- **команды**: Позволяют добавлять новый нежелательный контент и взаимодействовать с базой данных через API модуля **core**.
|
||||
- **mongodb**: База данных, в которой хранятся все удалённые сообщения, время и причина удаления.
|
||||
|
||||
#### Структура базы данных:
|
||||
База данных Discord хранит данные о пользователях, чьи сообщения были удалены, включая текст, изображение, ID пользователя и тип удаления (автоматическое или ручное).
|
||||
|
||||
## Дополнительная информация
|
||||
Проект разрабатывается на приватном сервере Gitea с использованием следующих практик и инструментов:
|
||||
|
||||
- **Линтинг**: Код проверяется с использованием линтеров для поддержания высокого качества.
|
||||
- **Тестирование**: Автоматические модульные тесты написаны с использованием Pytest для обеспечения корректности функционала.
|
||||
- **Нагрузочное тестирование**: Проводится с помощью Locust для оценки производительности системы под высокой нагрузкой.
|
||||
- **Автоматическое развёртывание**: С помощью Gitea Actions реализован непрерывный цикл интеграции и доставки (CI/CD).
|
||||
|
||||
## Установка и настройка
|
||||
1. Склонируйте репозиторий на локальную машину:
|
||||
```bash
|
||||
git clone https://gitea.db-of.ru/db_neiro_filter/telegram
|
||||
```
|
||||
2. Установите зависимости, используя Poetry:
|
||||
```bash
|
||||
poetry install
|
||||
```
|
||||
|
||||
## Запуск
|
||||
- Запуск бота
|
||||
```bash
|
||||
poetry run python main.py
|
||||
```
|
||||
|
||||
## Статистические данные
|
||||
- Количество строк/комментариев
|
||||
```bash
|
||||
poetry run python count_lines.py
|
||||
```
|
||||
- Проверка линтером
|
||||
```bash
|
||||
poetry run ruff check .
|
||||
```
|
||||
- Сырые статистические данные
|
||||
```bash
|
||||
poetry run radon raw ./
|
||||
```
|
||||
- Цикломатическая сложность
|
||||
```bash
|
||||
poetry run radon cc ./
|
||||
```
|
||||
- Метрики Холстеда
|
||||
```bash
|
||||
poetry run radon hal ./
|
||||
```
|
||||
- Индекс поддерживаемости кода
|
||||
```bash
|
||||
poetry run radon mi ./
|
||||
```
|
||||
|
||||
## Лицензия
|
||||
|
||||
Этот проект распространяется под лицензией **GNU AGPLv3 с дополнительными условиями**.
|
||||
|
||||
Основные положения:
|
||||
- Код остаётся открытым.
|
||||
- Обязательно указание авторства.
|
||||
- Все модификации должны распространяться под той же лицензией.
|
||||
- Коммерческое использование запрещено без разрешения автора.
|
||||
- Пользователи должны уведомлять автора о публичном использовании проекта.
|
||||
|
||||
Подробные условия см. в файле `LICENSE`.
|
||||
Дополнительные требования см. в файле `TERMS.md`.
|
||||
Reference in New Issue
Block a user