Files
vector/ANALYZE_API.md
T
2026-06-06 18:31:55 +00:00

4.0 KiB

Analyze API - Полный пайплайн анализа

Endpoints

POST /api/v1/analyze/analyze

Запустить полный анализ случая.

Пайплайн:

  1. Distance service - расчет максимальной дистанции
  2. Geo service - построение зон поиска (8 направлений)
  3. Scoring service - оценка и ранжирование зон
  4. Psychotype service - определение психотипа (если есть данные)
  5. Claude service - интеллектуальный анализ (опционально)
  6. Merge results - объединение результатов

Request:

{
  "case_id": "e9b1fd0c-b05c-4084-9813-ee91e6432246"
}

Response:

{
  "case_id": "uuid",
  "analyzed_at": "2026-05-05T07:34:11.691521",
  "max_distance_km": 5.1,
  "psychotype": "anxious",
  "psychotype_modifiers": {
    "zone_0_500": 1.4,
    "zone_500_1500": 1.1,
    "zone_1500_2500": 0.5,
    "zone_2500plus": 0.3,
    "movement_model": "stay"
  },
  "psychotype_recommendations": {
    "priority_zones": "Ближняя зона (0-500м) - критически важна",
    "search_pattern": "Тщательный осмотр ближайшей территории",
    "key_locations": "Укрытия, углубления, густая растительность",
    "communication": "Спокойные голосовые сигналы"
  },
  "zones": [
    {
      "priority": 1,
      "name": "Сектор N",
      "direction": "N",
      "distance_km": 4.08,
      "score": 30.0,
      "reasoning": "Базовая оценка (психотип: ×0.3)"
    }
  ],
  "urgency": "средняя",
  "key_locations": ["водоёмы", "дороги", "тропы"],
  "immediate_actions": ["Организовать поисковые группы"],
  "behavioral_prediction": "Умеренное движение",
  "summary": "Случай классифицирован как средняя срочность",
  "execution_time_ms": 21197.7,
  "services_used": ["distance", "geo", "psychotype", "claude"]
}

GET /api/v1/analyze/analyze/{case_id}

Получить сохранённый результат анализа.

Response:

{
  "case_id": "uuid",
  "analysis_log": { },
  "created_at": "2026-05-05T07:31:56.900783"
}

Статус сервисов

Сервис Статус Примечание
Distance ✅ Работает Расчет дистанции по формуле
Geo ✅ Работает Построение зон (21 сек)
Scoring ⚠️ Fallback NoneType division error
Psychotype ✅ Работает Определение + модификаторы
Claude ⚠️ Fallback 403 Forbidden (нет API ключа)

Fallback механизмы

Если сервис недоступен, система использует fallback:

  • Geo/Scoring fail → создаются базовые 8 секторов
  • Claude fail → базовые рекомендации из scoring service
  • Psychotype fail → анализ без модификаторов психотипа

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

Протестировано 2026-05-05:

  • ✅ Создание случая с психотипом
  • ✅ Запуск полного анализа
  • ✅ Получение сохраненного результата
  • ✅ Применение модификаторов психотипа к зонам

Известные проблемы

  1. Scoring service: Ошибка деления на None - нужно добавить проверки на None в scoring_service.py
  2. Claude API: Требуется настройка ANTHROPIC_API_KEY в .env
  3. Geo service: Возвращает пустые зоны (возможно, проблема с Overpass API или кешем)

Дата создания

2026-05-05