ai-tutor-module 1.0.0 → 1.0.2
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/README.md +55 -88
- package/dist/index.cjs.js +3 -3
- package/dist/index.es.js +72 -66
- package/package.json +8 -6
package/README.md
CHANGED
|
@@ -1,37 +1,51 @@
|
|
|
1
|
-
|
|
1
|
+
````md
|
|
2
|
+
# ai-tutor-module
|
|
2
3
|
|
|
3
|
-
|
|
4
|
+
**AI Tutor Module** — встраиваемый React-модуль с AI-ассистентом для образовательной платформы совместного обучения.
|
|
4
5
|
|
|
5
|
-
|
|
6
|
+
Модуль реализует чат с AI, поддержку нескольких диалогов, потоковые ответы и адаптивный интерфейс для desktop и mobile.
|
|
6
7
|
|
|
7
|
-
|
|
8
|
+
---
|
|
8
9
|
|
|
9
|
-
|
|
10
|
-
* историю чатов;
|
|
11
|
-
* потоковые ответы AI;
|
|
12
|
-
* редактирование сообщений с переответом;
|
|
13
|
-
* панель материалов;
|
|
14
|
-
* сбор агрегированной статистики использования.
|
|
10
|
+
## Установка
|
|
15
11
|
|
|
16
|
-
|
|
12
|
+
```bash
|
|
13
|
+
npm install ai-tutor-module
|
|
14
|
+
````
|
|
17
15
|
|
|
18
|
-
|
|
16
|
+
---
|
|
19
17
|
|
|
20
|
-
|
|
18
|
+
## Использование
|
|
21
19
|
|
|
22
20
|
```tsx
|
|
23
21
|
import AiTutorModule from "ai-tutor-module";
|
|
24
22
|
|
|
25
|
-
|
|
23
|
+
function App() {
|
|
24
|
+
return <AiTutorModule />;
|
|
25
|
+
}
|
|
26
26
|
```
|
|
27
27
|
|
|
28
|
+
Модуль предназначен для использования **внутри платформы** и **не является standalone-приложением**.
|
|
29
|
+
|
|
28
30
|
---
|
|
29
31
|
|
|
30
|
-
##
|
|
32
|
+
## Возможности
|
|
33
|
+
|
|
34
|
+
* чат пользователя с AI-ассистентом;
|
|
35
|
+
* несколько чатов;
|
|
36
|
+
* потоковые (streaming) ответы AI;
|
|
37
|
+
* редактирование сообщений с получением нового ответа;
|
|
38
|
+
* панель учебных материалов;
|
|
39
|
+
* мобильная и десктопная версии;
|
|
40
|
+
* сбор агрегированной статистики использования.
|
|
31
41
|
|
|
32
|
-
|
|
42
|
+
---
|
|
33
43
|
|
|
34
|
-
|
|
44
|
+
## Требования к платформе
|
|
45
|
+
|
|
46
|
+
### Контекст виджета
|
|
47
|
+
|
|
48
|
+
Платформа должна передать модулю данные при создании виджета:
|
|
35
49
|
|
|
36
50
|
```json
|
|
37
51
|
{
|
|
@@ -47,105 +61,58 @@ import AiTutorModule from "ai-tutor-module";
|
|
|
47
61
|
}
|
|
48
62
|
```
|
|
49
63
|
|
|
50
|
-
Эти данные используются модулем
|
|
51
|
-
|
|
52
|
-
* работы с backend;
|
|
53
|
-
* отправки статистики;
|
|
54
|
-
* синхронизации состояния виджета.
|
|
64
|
+
Эти данные используются модулем для работы с backend и сбора статистики.
|
|
55
65
|
|
|
56
66
|
---
|
|
57
67
|
|
|
58
|
-
|
|
68
|
+
## Backend API
|
|
59
69
|
|
|
60
|
-
Модуль ожидает наличие
|
|
70
|
+
Модуль ожидает наличие backend API со следующей функциональностью:
|
|
61
71
|
|
|
62
|
-
* авторизация
|
|
72
|
+
* авторизация через **Bearer Token**;
|
|
63
73
|
* управление чатами (создание / удаление / список);
|
|
64
|
-
* отправка сообщений с
|
|
74
|
+
* отправка сообщений с потоковым (streaming) ответом;
|
|
65
75
|
* получение истории чата;
|
|
66
|
-
* редактирование
|
|
67
|
-
|
|
68
|
-
Формат истории сообщений:
|
|
69
|
-
|
|
70
|
-
```json
|
|
71
|
-
{
|
|
72
|
-
"messages": [
|
|
73
|
-
{
|
|
74
|
-
"id": "string",
|
|
75
|
-
"role": "user | assistant",
|
|
76
|
-
"text": "string",
|
|
77
|
-
"created_at": "ISO-8601"
|
|
78
|
-
}
|
|
79
|
-
]
|
|
80
|
-
}
|
|
81
|
-
```
|
|
76
|
+
* редактирование сообщений пользователя с переответом AI.
|
|
82
77
|
|
|
83
78
|
---
|
|
84
79
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
Ответ AI передаётся:
|
|
88
|
-
|
|
89
|
-
* chunked HTTP response;
|
|
90
|
-
* plain text;
|
|
91
|
-
* с маркером завершения `[DONE]`.
|
|
80
|
+
## Streaming-ответы
|
|
92
81
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
---
|
|
82
|
+
Ответ AI должен передаваться как:
|
|
96
83
|
|
|
97
|
-
|
|
84
|
+
* `chunked` HTTP response;
|
|
85
|
+
* `plain text`;
|
|
86
|
+
* с маркером завершения:
|
|
98
87
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
* количество чатов;
|
|
102
|
-
* количество сообщений;
|
|
103
|
-
* активное состояние UI.
|
|
104
|
-
|
|
105
|
-
Модуль **не логирует события**, а отправляет только агрегированные данные.
|
|
106
|
-
|
|
107
|
-
---
|
|
108
|
-
|
|
109
|
-
### 5. Закрытие модуля
|
|
110
|
-
|
|
111
|
-
Для закрытия модуль отправляет событие:
|
|
112
|
-
|
|
113
|
-
```js
|
|
114
|
-
window.postMessage({ type: "AI_TUTOR_MODULE_CLOSE" }, "*");
|
|
88
|
+
```
|
|
89
|
+
[DONE]
|
|
115
90
|
```
|
|
116
91
|
|
|
117
|
-
|
|
92
|
+
Модуль отображает ответ по мере получения чанков.
|
|
118
93
|
|
|
119
94
|
---
|
|
120
95
|
|
|
121
96
|
## Ответственность сторон
|
|
122
97
|
|
|
123
|
-
|
|
98
|
+
### Модуль
|
|
124
99
|
|
|
125
100
|
* UI / UX;
|
|
126
|
-
*
|
|
127
|
-
* потоковый
|
|
128
|
-
* мобильная
|
|
129
|
-
*
|
|
101
|
+
* управление состоянием;
|
|
102
|
+
* потоковый вывод ответов;
|
|
103
|
+
* мобильная адаптация;
|
|
104
|
+
* отправка агрегированной статистики.
|
|
130
105
|
|
|
131
|
-
|
|
106
|
+
### Backend
|
|
132
107
|
|
|
133
108
|
* AI-логика;
|
|
134
109
|
* хранение истории;
|
|
135
110
|
* streaming API;
|
|
136
111
|
* авторизация.
|
|
137
112
|
|
|
138
|
-
|
|
113
|
+
### Платформа
|
|
139
114
|
|
|
140
115
|
* встраивание модуля;
|
|
141
|
-
* передача
|
|
142
|
-
*
|
|
143
|
-
*
|
|
144
|
-
|
|
145
|
-
---
|
|
146
|
-
|
|
147
|
-
## Статус
|
|
148
|
-
|
|
149
|
-
- Модуль готов к интеграции
|
|
150
|
-
- Поддерживает streaming
|
|
151
|
-
- Адаптирован под мобильные устройства
|
|
116
|
+
* передача контекста;
|
|
117
|
+
* прокидывание авторизации;
|
|
118
|
+
* управление жизненным циклом виджета.
|