qwen-alpha 1.0.20 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +116 -0
- package/PUBLISH.md +92 -37
- package/README.md +175 -109
- package/bin/qwen-alpha.js +1 -1
- package/package.json +1 -1
- package/src/bot/bot.js +20 -2
- package/src/bot/handlers/help.js +28 -10
- package/src/bot/handlers/instructions.js +94 -0
- package/src/bot/handlers/message.js +112 -12
- package/src/bot/handlers/reset.js +8 -6
- package/src/bot/handlers/start.js +43 -10
- package/src/bot/handlers/systemPrompt.js +132 -0
- package/src/bot/middleware/security.js +68 -0
- package/src/config/index.js +1 -1
- package/src/config/security.js +109 -0
- package/src/index.js +45 -0
- package/src/services/db/admins.js +19 -0
- package/src/services/db/sessions.js +18 -0
- package/src/services/db/systemPrompt.js +92 -0
- package/src/services/qwenService.js +161 -70
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
Все изменения в проекте Qwen Alpha.
|
|
4
|
+
|
|
5
|
+
## [2.0.0] — 2026-03-02
|
|
6
|
+
|
|
7
|
+
### ✨ Новые возможности
|
|
8
|
+
|
|
9
|
+
- **Системные промпты** — кастомизация поведения бота под разные задачи
|
|
10
|
+
- Команда `/setSystemPrompt <промт>` — установка промпта
|
|
11
|
+
- Команда `/getSystemPrompt` — просмотр текущего промпта
|
|
12
|
+
- Команда `/resetSystemPrompt` — сброс к промпту по умолчанию
|
|
13
|
+
- Промпт сохраняется в БД и переживает перезапуск бота
|
|
14
|
+
- Автоматическая инициализация при первом запуске
|
|
15
|
+
|
|
16
|
+
- **Команда `/instructions`** — подробные инструкции по настройке
|
|
17
|
+
- Для супер-админа: настройка промпта, примеры, управление админами
|
|
18
|
+
- Для всех: работа с кодом, контекст, безопасность
|
|
19
|
+
|
|
20
|
+
- **Система безопасности**
|
|
21
|
+
- `DANGEROUS_PATTERNS` — блокировка опасных запросов (shell, файлы, секреты)
|
|
22
|
+
- `SENSITIVE_PATTERNS` — скрытие чувствительной информации в ответах
|
|
23
|
+
- Middleware `securityMiddleware` — проверка запросов ДО отправки в Qwen
|
|
24
|
+
- Фильтр `filterResponse` — очистка ответов ПОСЛЕ получения от Qwen
|
|
25
|
+
- Супер-админ обходит все проверки
|
|
26
|
+
|
|
27
|
+
- **Интеграция с Qwen Code**
|
|
28
|
+
- Передача ID пользователя в запросе
|
|
29
|
+
- Добавление информации о правах в системный промпт
|
|
30
|
+
- Разные промпты для супер-админа и обычных пользователей
|
|
31
|
+
|
|
32
|
+
- **Улучшенное форматирование**
|
|
33
|
+
- Переход на HTML вместо Markdown (стабильнее)
|
|
34
|
+
- Обработка заголовков: `#` → `**🔸 Заголовок**`
|
|
35
|
+
- Обработка цитат: `>` → обычный текст
|
|
36
|
+
- Предобработка `preprocessMarkdown()` для неподдерживаемых элементов
|
|
37
|
+
|
|
38
|
+
- **Приветствие супер-админа**
|
|
39
|
+
- Расширенное сообщение при первом `/start`
|
|
40
|
+
- Пошаговые инструкции по настройке
|
|
41
|
+
- Примеры системных промптов
|
|
42
|
+
|
|
43
|
+
### 🔧 Исправления
|
|
44
|
+
|
|
45
|
+
- Исправлены ошибки парсинга Markdown (незакрытые теги)
|
|
46
|
+
- Исправлено форматирование Prettier
|
|
47
|
+
- Увеличен таймаут Qwen: 120с → 300с (5 минут)
|
|
48
|
+
- Увеличен таймаут Telegraf: 120с → 360с (6 минут)
|
|
49
|
+
- Удалена функция `escapeMarkdownV2()` (не нужна с HTML)
|
|
50
|
+
|
|
51
|
+
### 📦 Изменения
|
|
52
|
+
|
|
53
|
+
- Версия: `1.0.20` → `2.0.0`
|
|
54
|
+
- Обновлён README.md с полным описанием v2.0
|
|
55
|
+
- Обновлён `.env.example` с новыми опциями
|
|
56
|
+
- Создан `CHANGELOG.md`
|
|
57
|
+
- Обновлён `PUBLISH.md` с инструкциями для v2.0
|
|
58
|
+
|
|
59
|
+
### 🎯 Сценарии использования
|
|
60
|
+
|
|
61
|
+
1. **Консультант магазина**
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
/setSystemPrompt Ты — консультант магазина электроники...
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
2. **Техподдержка SaaS**
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
/setSystemPrompt Ты — техподдержка CRM-системы...
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
3. **Юридический бот**
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
/setSystemPrompt Ты — юридический консультант по праву РФ...
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
4. **AI-ассистент кода**
|
|
80
|
+
```
|
|
81
|
+
/setSystemPrompt Ты — AI-ассистент для работы с кодом...
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## [1.0.20] — 2026-03-01
|
|
87
|
+
|
|
88
|
+
### Добавлено
|
|
89
|
+
|
|
90
|
+
- Базовая функциональность Telegram-бота
|
|
91
|
+
- Интеграция с Qwen Code (headless режим)
|
|
92
|
+
- Code review, генерация кода, объяснение
|
|
93
|
+
- Сессии и контекст диалога
|
|
94
|
+
- Админ-панель (`/admin`)
|
|
95
|
+
- Статистика пользователей
|
|
96
|
+
- Rate limiting
|
|
97
|
+
- Логирование (pino)
|
|
98
|
+
- JSON хранилище (~/.qwen-alpha/)
|
|
99
|
+
|
|
100
|
+
### Исправлено
|
|
101
|
+
|
|
102
|
+
- Ошибки обработки сообщений
|
|
103
|
+
- Проблемы с таймаутами
|
|
104
|
+
- Форматирование ответов
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## Формат
|
|
109
|
+
|
|
110
|
+
Следуем [Semantic Versioning](https://semver.org/lang/ru/).
|
|
111
|
+
|
|
112
|
+
Формат версий: `[MAJOR.MINOR.PATCH]`
|
|
113
|
+
|
|
114
|
+
- **MAJOR** — несовместимые изменения API
|
|
115
|
+
- **MINOR** — новые возможности (обратная совместимость)
|
|
116
|
+
- **PATCH** — исправления багов (обратная совместимость)
|
package/PUBLISH.md
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
|
-
# 🚀 Инструкция по публикации и запуску Qwen Alpha
|
|
1
|
+
# 🚀 Инструкция по публикации и запуску Qwen Alpha v2.0
|
|
2
2
|
|
|
3
3
|
## ✅ Чек-лист перед публикацией
|
|
4
4
|
|
|
5
5
|
- [ ] Все зависимости установлены (`npm install`)
|
|
6
6
|
- [ ] Тесты проходят (`npm test`)
|
|
7
7
|
- [ ] Линтинг проходит (`npm run lint`)
|
|
8
|
+
- [ ] Форматирование в порядке (`npm run format:check`)
|
|
8
9
|
- [ ] README.md актуален
|
|
9
|
-
- [ ]
|
|
10
|
+
- [ ] CHANGELOG.md обновлён
|
|
11
|
+
- [ ] Version в package.json обновлён (2.0.0)
|
|
12
|
+
- [ ] .env.example актуален
|
|
10
13
|
|
|
11
14
|
---
|
|
12
15
|
|
|
@@ -30,7 +33,7 @@ npm pkg get
|
|
|
30
33
|
npm pack --dry-run
|
|
31
34
|
|
|
32
35
|
# Просмотр содержимого .tgz
|
|
33
|
-
tar -tzf qwen-alpha-
|
|
36
|
+
tar -tzf qwen-alpha-2.0.0.tgz
|
|
34
37
|
```
|
|
35
38
|
|
|
36
39
|
### 3. Публикация
|
|
@@ -39,8 +42,8 @@ tar -tzf qwen-alpha-1.0.0.tgz
|
|
|
39
42
|
# Публикация стабильной версии
|
|
40
43
|
npm publish
|
|
41
44
|
|
|
42
|
-
# Публикация
|
|
43
|
-
npm publish --tag
|
|
45
|
+
# Публикация с тегом latest (явно)
|
|
46
|
+
npm publish --tag latest
|
|
44
47
|
```
|
|
45
48
|
|
|
46
49
|
### 4. Проверка публикации
|
|
@@ -59,7 +62,7 @@ npm view qwen-alpha
|
|
|
59
62
|
### 1. Глобальная установка
|
|
60
63
|
|
|
61
64
|
```bash
|
|
62
|
-
npm install -g qwen-alpha
|
|
65
|
+
npm install -g qwen-alpha@2.0.0
|
|
63
66
|
```
|
|
64
67
|
|
|
65
68
|
### 2. Проверка CLI
|
|
@@ -85,9 +88,7 @@ qwen-alpha --token <YOUR_BOT_TOKEN>
|
|
|
85
88
|
|
|
86
89
|
---
|
|
87
90
|
|
|
88
|
-
## 🔄 Обновление версии
|
|
89
|
-
|
|
90
|
-
### SemVer (Semantic Versioning)
|
|
91
|
+
## 🔄 Обновление версии (SemVer)
|
|
91
92
|
|
|
92
93
|
```
|
|
93
94
|
MAJOR.MINOR.PATCH
|
|
@@ -100,16 +101,16 @@ MAJOR.MINOR.PATCH
|
|
|
100
101
|
### Команды для обновления версии
|
|
101
102
|
|
|
102
103
|
```bash
|
|
103
|
-
# Исправление багов (
|
|
104
|
+
# Исправление багов (2.0.0 → 2.0.1)
|
|
104
105
|
npm version patch
|
|
105
106
|
|
|
106
|
-
# Новые функции (
|
|
107
|
+
# Новые функции (2.0.0 → 2.1.0)
|
|
107
108
|
npm version minor
|
|
108
109
|
|
|
109
|
-
# Ломающие изменения (
|
|
110
|
+
# Ломающие изменения (2.0.0 → 3.0.0)
|
|
110
111
|
npm version major
|
|
111
112
|
|
|
112
|
-
# Pre-release версии (
|
|
113
|
+
# Pre-release версии (2.0.0 → 2.0.1-beta.0)
|
|
113
114
|
npm version prerelease --preid=beta
|
|
114
115
|
```
|
|
115
116
|
|
|
@@ -187,11 +188,20 @@ npm-views qwen-alpha
|
|
|
187
188
|
- Или через переменную окружения `BOT_TOKEN`
|
|
188
189
|
|
|
189
190
|
3. **npm audit**
|
|
191
|
+
|
|
190
192
|
```bash
|
|
191
193
|
npm audit
|
|
192
194
|
npm audit fix
|
|
193
195
|
```
|
|
194
196
|
|
|
197
|
+
4. **Проверка .gitignore**
|
|
198
|
+
|
|
199
|
+
```bash
|
|
200
|
+
cat .gitignore
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
Должны быть: `node_modules/`, `.env`, `*.log`, `~/.qwen-alpha/`
|
|
204
|
+
|
|
195
205
|
---
|
|
196
206
|
|
|
197
207
|
## 📝 Примеры использования
|
|
@@ -214,40 +224,85 @@ qwen-alpha --token <TOKEN> --log-level debug
|
|
|
214
224
|
qwen-alpha --token <TOKEN> --allowed-users 123456789,987654321
|
|
215
225
|
```
|
|
216
226
|
|
|
217
|
-
### Через
|
|
227
|
+
### Через переменную окружения
|
|
218
228
|
|
|
219
|
-
```
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
CMD ["qwen-alpha", "--token", "$BOT_TOKEN"]
|
|
229
|
+
```bash
|
|
230
|
+
export BOT_TOKEN=your_token_here
|
|
231
|
+
qwen-alpha --token $BOT_TOKEN
|
|
223
232
|
```
|
|
224
233
|
|
|
225
234
|
---
|
|
226
235
|
|
|
227
|
-
## 🎯
|
|
236
|
+
## 🎯 Настройка v2.0 после установки
|
|
228
237
|
|
|
229
|
-
1.
|
|
230
|
-
- Откройте https://t.me/BotFather
|
|
231
|
-
- Создайте нового бота если ещё не создан
|
|
232
|
-
- Получите токен
|
|
238
|
+
### 1. Первый запуск
|
|
233
239
|
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
240
|
+
```bash
|
|
241
|
+
qwen-alpha --token <TOKEN>
|
|
242
|
+
```
|
|
237
243
|
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
244
|
+
Бот автоматически:
|
|
245
|
+
|
|
246
|
+
- Инициализирует хранилище `~/.qwen-alpha/`
|
|
247
|
+
- Создаст системный промпт по умолчанию
|
|
248
|
+
- Зарегистрирует первого пользователя как супер-админа
|
|
249
|
+
|
|
250
|
+
### 2. Настройка системного промпта
|
|
251
|
+
|
|
252
|
+
В Telegram (супер-админ):
|
|
253
|
+
|
|
254
|
+
```
|
|
255
|
+
/setSystemPrompt Ты — консультант магазина электроники. Ассортимент: телевизоры, холодильники. Отвечай кратко.
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
### 3. Проверка промпта
|
|
259
|
+
|
|
260
|
+
```
|
|
261
|
+
/getSystemPrompt
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
### 4. Инструкции
|
|
265
|
+
|
|
266
|
+
```
|
|
267
|
+
/instructions
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
### 5. Добавление администраторов
|
|
271
|
+
|
|
272
|
+
```
|
|
273
|
+
/admin add <user_id>
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
---
|
|
277
|
+
|
|
278
|
+
## 📚 Документация v2.0
|
|
279
|
+
|
|
280
|
+
### Новые возможности
|
|
281
|
+
|
|
282
|
+
- **Системные промпты** — кастомизация поведения бота
|
|
283
|
+
- **Команда `/instructions`** — подробные инструкции
|
|
284
|
+
- **Система безопасности** — защита от опасных запросов
|
|
285
|
+
- **Фильтрация ответов** — скрытие чувствительной информации
|
|
286
|
+
- **HTML-форматирование** — стабильная работа с Telegram
|
|
287
|
+
|
|
288
|
+
### Сценарии использования
|
|
289
|
+
|
|
290
|
+
| Сценарий | Пример промпта |
|
|
291
|
+
| -------------------- | --------------------------------------------- |
|
|
292
|
+
| Консультант магазина | `Ты — консультант магазина электроники...` |
|
|
293
|
+
| Техподдержка | `Ты — техподдержка CRM-системы...` |
|
|
294
|
+
| Юридический бот | `Ты — юридический консультант по праву РФ...` |
|
|
295
|
+
| AI-ассистент кода | `Ты — AI-ассистент для работы с кодом...` |
|
|
296
|
+
|
|
297
|
+
---
|
|
242
298
|
|
|
243
|
-
|
|
244
|
-
- Добавьте бота в группу
|
|
245
|
-
- Проверьте работу `/qwen` команд
|
|
299
|
+
## 🔗 Ссылки
|
|
246
300
|
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
301
|
+
- **Репозиторий**: https://github.com/JeBance/QwenAlpha
|
|
302
|
+
- **NPM**: https://www.npmjs.com/package/qwen-alpha
|
|
303
|
+
- **Issues**: https://github.com/JeBance/QwenAlpha/issues
|
|
304
|
+
- **CHANGELOG**: https://github.com/JeBance/QwenAlpha/blob/main/CHANGELOG.md
|
|
250
305
|
|
|
251
306
|
---
|
|
252
307
|
|
|
253
|
-
**Удачи с
|
|
308
|
+
**Удачи с публикацией v2.0! 🚀**
|