networkbot / README.md
Adieva-15's picture
fixed generate.py
774feb5
|
Raw
History Blame Contribute Delete
9.31 kB
---
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 — свободно используйте и модифицируйте.
---