Spaces:
Sleeping
Sleeping
| title: networkbot | |
| emoji: 🤖 | |
| colorFrom: blue | |
| colorTo: indigo | |
| sdk: docker | |
| app_port: 7860 | |
| # НейроЛингвист — интеллектуальный помощник для работы с текстом | |
| Веб-приложение на Flask, объединяющее **нейросетевые** и **логические** функции обработки текста. Позволяет анализировать тональность, генерировать продолжение, делать краткий пересказ, общаться с ИИ-агентом, а также выполнять простые текстовые операции: подсчёт статистики, перемешивание слов, преобразование в leetspeak, сравнение двух текстов и транслитерацию. | |
| ## возможности | |
| | Функция | Тип | Описание | | |
| |---------|-----|----------| | |
| | **Тональность** | ИИ | Определяет эмоциональную окраску текста (негатив/нейтраль/позитив) с использованием модели `tabularisai/multilingual-sentiment-analysis`. | | |
| | **Генерация текста** | ИИ | Продолжает заданный промпт на основе GPT‑2 (локально). | | |
| | **Суммаризация** | ИИ | Сжимает длинный текст в краткий пересказ с помощью `IlyaGusev/rut5_base_sum_gazeta`. | | |
| | **Чат с ИИ** | ИИ | Диалог с агентом через Hugging Face Inference API (модель `zai-org/GLM-5.2:novita`). Поддерживает контекст беседы. | | |
| | **Статистика текста** | Логика | Подсчёт числа символов (с пробелами и без) и количества слов. | | |
| | **Перемешать слова** | Логика | Случайная перестановка слов в предложении. | | |
| | **Leetspeak** | Логика | Замена кириллических букв на цифры и символы (например, «а» → «@», «о» → «0»). | | |
| | **Сравнить два текста** | Логика | Вычисление процентного совпадения уникальных слов. | | |
| | **Транслитерация** | Логика | Преобразование кириллицы в латиницу по стандартным правилам. | | |
| --- | |
| ## Установка и запуск | |
| ### Требования | |
| - Python 3.10+ | |
| - Оперативная память: от 4 ГБ (модели загружаются в ОЗУ) | |
| - Диск: около 2–3 ГБ для кеша моделей | |
| ### Шаги | |
| 1. Клонируйте репозиторий: | |
| ```bash | |
| git clone https://github.com/Adieva15/networkbot.git | |
| cd neural-web | |
| ``` | |
| 2. Создайте виртуальное окружение: | |
| ```bash | |
| python -m venv .venv | |
| source .venv/bin/activate # Linux/Mac | |
| .venv\Scripts\activate # Windows | |
| ``` | |
| 3. Установите зависимости: | |
| ```bash | |
| pip install -r requirements.txt | |
| ``` | |
| 4. Настройте `config.py` (при необходимости измените модели). По умолчанию используются зеркало Hugging Face и следующие модели: | |
| Создайте файл .env или установите переменную HF_TOKEN с вашим токеном Hugging Face (для работы чата через Inference API). | |
| Пример: | |
| bash | |
| export HF_TOKEN="hf_xxxxxxxxxxxxxxxx" | |
| Токен можно получить на huggingface.co/settings/tokens. | |
| 5. Запустите приложение: | |
| ```bash | |
| python app.py | |
| ``` | |
| 6. Откройте браузер по адресу: | |
| `http://127.0.0.1:7860` | |
| 7. Либо перейдите по ссылке сразу на захощенный сайт: | |
| https://huggingface.co/space/Adieva-15/networkbot | |
| > **При первом запуске** модели будут загружены с `hf-mirror.com`. Это может занять несколько минут (размер файлов от 300 МБ до 1.5 ГБ). Прогресс отображается в консоли. | |
| --- | |
| ## Структура проекта | |
| ``` | |
| networkbot/ | |
| ├── app.py # Главный файл Flask | |
| ├── config.py # Настройки моделей и API | |
| ├── functions/ # Модули с функциями | |
| │ ├── __init__.py | |
| │ ├── sentiment.py | |
| │ ├── generate_text.py | |
| │ ├── summarize.py | |
| │ ├── chat.py | |
| │ ├── text_stats.py | |
| │ └── text_utils.py | |
| ├── templates/ | |
| │ └── index.html # Главная страница (интерфейс) | |
| ├── static/ # (опционально) стили, скрипты | |
| ├── requirements.txt # Список зависимостей | |
| └── README.md | |
| ``` | |
| --- | |
| ## Использование | |
| ### Через веб-интерфейс | |
| Выберите нужную функцию из выпадающего списка. | |
| Введите текст (для сравнения – два текста). | |
| Нажмите «→ Отправить» – результат появится внизу. | |
| Для чата – выберите «Чат», введите сообщение и нажмите Enter или кнопку «→». | |
| Переключайте тему (светлая/тёмная) кнопкой в правом верхнем углу. | |
| ### Примеры запросов | |
| Тональность: | |
| «Фильм был потрясающим!» → Позитивный | |
| Генерация: | |
| «Однажды в студёную зимнюю пору…» → продолжение текста | |
| Суммаризация: | |
| (длинная статья) → краткий абзац | |
| Чат: | |
| «Что такое цифровой двойник?» → ответ от ИИ | |
| --- | |
| ## Конфигурация | |
| Файл `config.py` содержит переменные окружения и пути к моделям. Основные параметры: | |
| | Переменная | Описание | Значение по умолчанию | | |
| |------------|----------|-----------------------| | |
| model_name Модель для тональности tabularisai/multilingual-sentiment-analysis | |
| model_gt Модель для генерации ai-forever/rugpt3small_based_on_gpt2 | |
| model_sum Модель для суммаризации IlyaGusev/rut5_base_sum_gazeta | |
| model_chat Модель для чата (через HF API) zai-org/GLM-5.2:novita | |
| HF_TOKEN Токен Hugging Face (обязателен для чата) (не задан) | |
| Для использования функций удаления фона и переноса стиля необходимо получить бесплатный API‑ключ на [replicate.com](https://replicate.com) и указать его в `.env` или прямо в `config.py`. Без ключа эти две кнопки будут выдавать ошибку. | |
| --- | |
| ## Зависимости | |
| Основные библиотеки (полный список в requirements.txt): | |
| - Flask 2.3+ | |
| - Transformers 4.36+ | |
| - Torch 2.0+ | |
| - OpenAI | |
| - Requests | |
| - NumPy | |
| --- | |
| ## Тестирование | |
| После запуска проверьте все функции. Если какая-то команда не работает, убедитесь, что: | |
| - Интернет-соединение активно (для загрузки моделей и API). | |
| - Переменная HF_TOKEN установлена корректно (для чата). | |
| - Достаточно свободной оперативной памяти. | |
| --- | |
| ## Примечания | |
| - Все модели работают локально, данные пользователей не покидают ваш компьютер. | |
| - При использовании Replicate (удаление фона, стиль) изображения передаются на внешний сервер — ознакомьтесь с политикой конфиденциальности сервиса. | |
| - Для ускорения загрузки моделей можно использовать `torch.device('cuda')`, если у вас есть GPU (требуется CUDA-версия PyTorch). | |
| --- | |
| ## Планы по развитию | |
| - Добавить возможность загрузки файлов (txt, docx) для обработки. | |
| - Реализовать сохранение истории запросов. | |
| - Подключить дополнительные модели (например, для перевода или исправления ошибок). | |
| --- | |
| ## Вклад | |
| Если вы хотите улучшить проект — создавайте Issues и Pull Requests. | |
| --- | |
| ## Лицензия | |
| MIT License — свободно используйте и модифицируйте. | |
| --- | |