ai-tutor-module 1.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/README.md +151 -0
- package/dist/ai-tutor-module.css +1 -0
- package/dist/index.cjs.js +328 -0
- package/dist/index.es.js +51906 -0
- package/package.json +30 -0
package/README.md
ADDED
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
# AI Tutor Module (Short Integration Guide)
|
|
2
|
+
|
|
3
|
+
## Назначение
|
|
4
|
+
|
|
5
|
+
**AI Tutor Module** — это встраиваемый чат-модуль с AI-ассистентом для образовательной платформы совместного обучения.
|
|
6
|
+
|
|
7
|
+
Модуль предоставляет:
|
|
8
|
+
|
|
9
|
+
* диалог пользователя с AI;
|
|
10
|
+
* историю чатов;
|
|
11
|
+
* потоковые ответы AI;
|
|
12
|
+
* редактирование сообщений с переответом;
|
|
13
|
+
* панель материалов;
|
|
14
|
+
* сбор агрегированной статистики использования.
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Формат поставки
|
|
19
|
+
|
|
20
|
+
Модуль поставляется **в виде npm-пакета** и подключается к платформе как **React-компонент**.
|
|
21
|
+
|
|
22
|
+
```tsx
|
|
23
|
+
import AiTutorModule from "ai-tutor-module";
|
|
24
|
+
|
|
25
|
+
<AiTutorModule />
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Интеграция с платформой
|
|
31
|
+
|
|
32
|
+
### 1. Передача данных при создании виджета
|
|
33
|
+
|
|
34
|
+
Платформа должна передать модулю информацию о контексте через функцию `getInfo`:
|
|
35
|
+
|
|
36
|
+
```json
|
|
37
|
+
{
|
|
38
|
+
"widgetId": number,
|
|
39
|
+
"userId": number,
|
|
40
|
+
"role": string,
|
|
41
|
+
"config": object,
|
|
42
|
+
"board": {
|
|
43
|
+
"id": number,
|
|
44
|
+
"name": string,
|
|
45
|
+
"parentId": number
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Эти данные используются модулем для:
|
|
51
|
+
|
|
52
|
+
* работы с backend;
|
|
53
|
+
* отправки статистики;
|
|
54
|
+
* синхронизации состояния виджета.
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
### 2. Backend API (обязательный минимум)
|
|
59
|
+
|
|
60
|
+
Модуль ожидает наличие следующих API:
|
|
61
|
+
|
|
62
|
+
* авторизация (Bearer Token);
|
|
63
|
+
* управление чатами (создание / удаление / список);
|
|
64
|
+
* отправка сообщений с **потоковым (streaming) ответом**;
|
|
65
|
+
* получение истории чата;
|
|
66
|
+
* редактирование сообщения с переответом AI.
|
|
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
|
+
```
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
### 3. Потоковые ответы AI
|
|
86
|
+
|
|
87
|
+
Ответ AI передаётся:
|
|
88
|
+
|
|
89
|
+
* chunked HTTP response;
|
|
90
|
+
* plain text;
|
|
91
|
+
* с маркером завершения `[DONE]`.
|
|
92
|
+
|
|
93
|
+
Модуль отображает ответ **по мере получения чанков**.
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
### 4. Статистика
|
|
98
|
+
|
|
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" }, "*");
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
Платформа должна обработать это событие и закрыть/удалить модуль.
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## Ответственность сторон
|
|
122
|
+
|
|
123
|
+
**Фронтенд (модуль):**
|
|
124
|
+
|
|
125
|
+
* UI / UX;
|
|
126
|
+
* логика чата;
|
|
127
|
+
* потоковый вывод;
|
|
128
|
+
* мобильная и десктопная версия;
|
|
129
|
+
* статистика.
|
|
130
|
+
|
|
131
|
+
**Backend:**
|
|
132
|
+
|
|
133
|
+
* AI-логика;
|
|
134
|
+
* хранение истории;
|
|
135
|
+
* streaming API;
|
|
136
|
+
* авторизация.
|
|
137
|
+
|
|
138
|
+
**Платформа:**
|
|
139
|
+
|
|
140
|
+
* встраивание модуля;
|
|
141
|
+
* передача контекста (`getInfo`);
|
|
142
|
+
* жизненный цикл виджета;
|
|
143
|
+
* обработка закрытия.
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## Статус
|
|
148
|
+
|
|
149
|
+
- Модуль готов к интеграции
|
|
150
|
+
- Поддерживает streaming
|
|
151
|
+
- Адаптирован под мобильные устройства
|