-
Notifications
You must be signed in to change notification settings - Fork 0
features data export
Пользователи могут скачать свои когнитивные тренировочные данные в privacy-safe, LLM-friendly JSON-формате. Это позволяет загрузить результаты в любую большую языковую модель для персонального анализа, поиска трендов и оптимизации тренировок.
- Пользователь открывает страницу Cognitive Profile (
CognitiveProfile.tsx) и нажимает кнопку «Экспорт» (в UI подписана как «Экспорт»). - Кнопка отправляет
GETзапрос на/api/analytics/exportс Bearer JWT токеном в заголовкеAuthorization. - Серверный эндпоинт в
src/server/routes/analytics.ts(строка 288) запрашивает завершённыеGameSessionпользователя, отсортированные по убыванию даты. - Функция
createPrivacySafeAnalyticsExport()в том же файле обрабатывает сессии в агрегированный, анонимизированный формат. - Сервер возвращает JSON-файл, который браузер скачивает как
kognitika_export_YYYY-MM-DD.json.
Экспорт-эндпоинт верифицирован тестом src/tests/analytics-export-privacy.test.ts. Тест подтверждает:
- Нет сырого Brain ID в ответе (ни в каком месте, включая вложенные метаданные)
- Нет email-адресов, токенов или хэшей паролей
- Нет сырой session database ID (UUID)
- Нет точных таймстемпов активности
- Объект
privacyв ответе подтверждает:personal_identifiers_included: falseraw_session_data_included: falseexact_activity_timestamps_included: falsesafe_for_external_llm: true
Серверный middleware privacyGuard в src/server/middleware/privacy.ts работает на всех API-ответах как дополнительный слой защиты.
JSON-ответ имеет следующую структуру:
{
"format": "Kognitika Privacy-Safe Cognitive Analytics",
"version": "2.0",
"privacy": {
"personal_identifiers_included": false,
"raw_session_data_included": false,
"exact_activity_timestamps_included": false,
"safe_for_external_llm": true
},
"dataset": {
"completed_sessions_analyzed": 150,
"modules_with_data": 12,
"history_truncated": false,
"maximum_sessions_analyzed": 1000
},
"modules": [
{
"moduleId": "schulte",
"displayName": "Таблицы Шульте",
"sessions": 25,
"bestTimeMs": 18400,
"medianTimeMs": 24100,
"accuracy": 98.5,
"trend": "improving",
"normative": {
"targetMs": 15000,
"source": "Literature: Schulte tables normative data"
}
},
{ "...": "другие модули" }
],
"aggregate": {
"totalSessions": 150,
"totalTimeMs": 3600000,
"overallAccuracy": 94.2,
"strongestModules": ["schulte", "nback"],
"weakestModules": ["stroop-alphabet", "dispatcher"]
}
}| Константа | Значение | Где определена |
|---|---|---|
MAX_EXPORT_SESSIONS |
1000 | src/server/routes/analytics.ts |
Экспорт обрезает историю до последних 1000 завершённых сессий (флаг history_truncated в ответе указывает, было ли обрезание).
Файл kognitika_export_YYYY-MM-DD.json можно загрузить в любой LLM (ChatGPT, Claude, локальные модели) с промптом:
«Проанализируй мои когнитивные тренировочные данные. Найди тренды, сильные и слабые стороны, предложи план тренировок на следующий месяц».
LLM получит:
- Агрегированные метрики по каждому модулю
- Тренды (improving / stable / declining)
- Нормативные сравнения
- Рекомендации по слабым зонам
Никаких идентифицирующих данных в экспорте нет — полная приватность.