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

---