Spaces:
Sleeping
Sleeping
File size: 9,305 Bytes
092d445 0387254 f7e799f 6228fe0 f7e799f 6228fe0 71fc2ba 0387254 f7e799f 0387254 f7e799f 0387254 f7e799f 0387254 f7e799f 0387254 774feb5 0387254 f7e799f 0387254 f7e799f 0387254 f7e799f 0387254 f7e799f 0387254 f7e799f 0387254 f7e799f 0387254 f7e799f 0387254 f7e799f 774feb5 f7e799f 0387254 f7e799f 0387254 f7e799f 0387254 f7e799f 0387254 f7e799f 0387254 f7e799f 0387254 f7e799f 0387254 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 | ---
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 — свободно используйте и модифицируйте.
---
|