networkbot / README.md
Adieva-15's picture
fixed generate.py
774feb5
|
Raw
History Blame Contribute Delete
9.31 kB
metadata
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. Клонируйте репозиторий:

    git clone https://github.com/Adieva15/networkbot.git
    cd neural-web
    
  2. Создайте виртуальное окружение:

    python -m venv .venv
    source .venv/bin/activate      # Linux/Mac
    .venv\Scripts\activate          # Windows
    
  3. Установите зависимости:

    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. Запустите приложение:

    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 и указать его в .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 — свободно используйте и модифицируйте.