Files
vector/PSYCHOTYPE_SUMMARY.md
T

7.5 KiB
Raw Blame History

Итоговая сводка: Функционал психотипа

Дата: 2026-05-01
Проект: SAR-MCHS (Search and Rescue Management System)
Сервер: LXC 108 (192.168.0.108)

✅ Выполненные задачи

Backend (Полностью готов)

  1. Сервис психотипа - backend/services/psychotype_service.py

    • 3 функции: detect_psychotype, get_psychotype_modifiers, get_search_recommendations
    • 5 психотипов с модификаторами зон
    • Основано на методике Рындиной О.Г., Ивановой О.Ю. (2015)
  2. API Endpoint - POST /api/v1/analyze/psychotype

    • ✅ Работает и протестирован
    • Возвращает психотип, модификаторы, рекомендации
    • Валидация входных данных
  3. Тесты - Все психотипы протестированы:

    • Dominant: зона 1500-2500м ×1.4, модель chaotic_far
    • Anxious: зона 0-500м ×1.4, модель stay
    • Harmonic: равномерное распределение, модель linear_landmark
    • Introvert Passive: зона 0-500м ×1.3, модель stay_hidden
    • Introvert Active: зона 500-2500м ×1.2, модель linear_landmark

Frontend (Полностью готов)

  1. Компонент формы - frontend/src/components/MobileForm.jsx

    • Блок психотипа с 4 вопросами
    • Touch-friendly кнопки (min 52px)
    • Адаптивный дизайн
    • Все поля необязательные
  2. Стили - frontend/src/components/MobileForm.css

    • Мобильная оптимизация
    • Крупные кнопки для сенсорных экранов
    • Визуальная обратная связь
  3. Интеграция - App.js обновлен для показа формы

Документация

  1. PSYCHOTYPE_API.md - полная документация API
  2. MOBILE_FORM_README.md - руководство по использованию формы
  3. SERVICES_README.md - обновлена информация о сервисах

🌐 Доступ к сервисам

📋 Структура данных

Вопросы в форме

  1. Как ведёт себя в незнакомой обстановке?

    • Активно исследует → unfamiliar_env: 'explore'
    • Ждёт → unfamiliar_env: 'wait'
    • Замирает → unfamiliar_env: 'freeze'
    • Паникует → unfamiliar_env: 'panic'
  2. Реакция на неудачи?

    • Злится, кричит → stress_reaction: 'active'
    • Плачет, замыкается → stress_reaction: 'cry'
    • Спокойно ищет выход → stress_reaction: 'calm'
  3. Лидер или ведомый?

    • Лидер → group_role: 'leader'
    • Иногда → group_role: 'sometimes'
    • Всегда ведомый → group_role: 'follower'
  4. Любит рисковать?

    • Очень → risk_taking: 'high'
    • Иногда → risk_taking: 'medium'
    • Нет, осторожный → risk_taking: 'low'

Пример запроса

curl -X POST http://192.168.0.108:8000/api/v1/analyze/psychotype \
  -H "Content-Type: application/json" \
  -d '{
    "stress_reaction": "cry",
    "group_role": "follower",
    "risk_taking": "low",
    "unfamiliar_env": "freeze"
  }'

Пример ответа

{
  "psychotype": "anxious",
  "modifiers": {
    "zone_0_500": 1.4,
    "zone_500_1500": 1.1,
    "zone_1500_2500": 0.5,
    "zone_2500plus": 0.3,
    "movement_model": "stay",
    "description": "Тревожный тип: минимальное движение, остается близко к точке потери"
  },
  "recommendations": {
    "priority_zones": "Ближняя зона (0-500м) - критически важна",
    "search_pattern": "Тщательный осмотр ближайшей территории",
    "key_locations": "Укрытия, углубления, густая растительность рядом с точкой потери",
    "communication": "Спокойные голосовые сигналы, избегать резких звуков"
  }
}

🎯 Психотипы и их характеристики

Психотип Триггер Зона 0-500м Зона 1500-2500м Модель движения
Dominant active + leader + high 0.7 (низкий) 1.4 (высокий) chaotic_far
Harmonic calm + leader + low 0.8 1.1 linear_landmark
Anxious cry + follower + low 1.4 (высокий) 0.5 (низкий) stay
Introvert Passive freeze + follower + low 1.3 (высокий) 0.6 (низкий) stay_hidden
Introvert Active active + leader + medium 0.8 1.2 linear_landmark

🔄 Интеграция с другими модулями

Модификаторы психотипа можно использовать в:

  1. scoring_service.py - взвешивание зон поиска
  2. geo_service.py - построение приоритетных зон
  3. distance_service.py - корректировка максимальной дистанции

Пример интеграции

from services.psychotype_service import detect_psychotype, get_psychotype_modifiers

# Определяем психотип
psychotype = detect_psychotype(answers)
modifiers = get_psychotype_modifiers(psychotype)

# Применяем к базовым вероятностям
base_prob = 0.5
adjusted_prob = base_prob * modifiers['zone_0_500']

📝 Следующие шаги

  1. Интегрировать психотип в основной flow создания карточки
  2. Добавить визуализацию модификаторов на карте
  3. Сохранять психотип в БД вместе с карточкой
  4. Использовать модификаторы в расчете приоритетных зон
  5. Добавить статистику по эффективности психотипов

🧪 Тестирование

Запустить тесты:

# Backend тесты
pct exec 108 -- bash /root/test_psychotype_flow.sh

# Проверка frontend
curl http://192.168.0.108:3000

# Проверка API
curl http://192.168.0.108:8000/api/v1/analyze/psychotype \
  -H "Content-Type: application/json" \
  -d '{"stress_reaction":"active","group_role":"leader","risk_taking":"high","unfamiliar_env":"explore"}'

📚 Документация

  • PSYCHOTYPE_API.md - API документация
  • MOBILE_FORM_README.md - документация формы
  • SERVICES_README.md - обзор всех сервисов
  • backend/services/psychotype_service.py - docstrings в коде

Статус: ✅ Полностью готово к использованию
Протестировано: Backend API, Frontend компонент, Интеграция
Источник методики: Рындина О.Г., Иванова О.Ю., Чебоксары, 2015