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 CHANGED
@@ -1,37 +1,51 @@
1
- # AI Tutor Module (Short Integration Guide)
1
+ ````md
2
+ # ai-tutor-module
2
3
 
3
- ## Назначение
4
+ **AI Tutor Module** — встраиваемый React-модуль с AI-ассистентом для образовательной платформы совместного обучения.
4
5
 
5
- **AI Tutor Module** это встраиваемый чат-модуль с AI-ассистентом для образовательной платформы совместного обучения.
6
+ Модуль реализует чат с AI, поддержку нескольких диалогов, потоковые ответы и адаптивный интерфейс для desktop и mobile.
6
7
 
7
- Модуль предоставляет:
8
+ ---
8
9
 
9
- * диалог пользователя с AI;
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
- Модуль поставляется **в виде npm-пакета** и подключается к платформе как **React-компонент**.
18
+ ## Использование
21
19
 
22
20
  ```tsx
23
21
  import AiTutorModule from "ai-tutor-module";
24
22
 
25
- <AiTutorModule />
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
- ### 1. Передача данных при создании виджета
42
+ ---
33
43
 
34
- Платформа должна передать модулю информацию о контексте через функцию `getInfo`:
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
- ### 2. Backend API (обязательный минимум)
68
+ ## Backend API
59
69
 
60
- Модуль ожидает наличие следующих API:
70
+ Модуль ожидает наличие backend API со следующей функциональностью:
61
71
 
62
- * авторизация (Bearer Token);
72
+ * авторизация через **Bearer Token**;
63
73
  * управление чатами (создание / удаление / список);
64
- * отправка сообщений с **потоковым (streaming) ответом**;
74
+ * отправка сообщений с потоковым (streaming) ответом;
65
75
  * получение истории чата;
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
- ```
76
+ * редактирование сообщений пользователя с переответом AI.
82
77
 
83
78
  ---
84
79
 
85
- ### 3. Потоковые ответы AI
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
- ### 4. Статистика
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
- **Backend:**
106
+ ### Backend
132
107
 
133
108
  * AI-логика;
134
109
  * хранение истории;
135
110
  * streaming API;
136
111
  * авторизация.
137
112
 
138
- **Платформа:**
113
+ ### Платформа
139
114
 
140
115
  * встраивание модуля;
141
- * передача контекста (`getInfo`);
142
- * жизненный цикл виджета;
143
- * обработка закрытия.
144
-
145
- ---
146
-
147
- ## Статус
148
-
149
- - Модуль готов к интеграции
150
- - Поддерживает streaming
151
- - Адаптирован под мобильные устройства
116
+ * передача контекста;
117
+ * прокидывание авторизации;
118
+ * управление жизненным циклом виджета.