Import Vector lab project
This commit is contained in:
+107
@@ -0,0 +1,107 @@
|
||||
# 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:**
|
||||
```json
|
||||
{
|
||||
"case_id": "e9b1fd0c-b05c-4084-9813-ee91e6432246"
|
||||
}
|
||||
```
|
||||
|
||||
**Response:**
|
||||
```json
|
||||
{
|
||||
"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:**
|
||||
```json
|
||||
{
|
||||
"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
|
||||
Reference in New Issue
Block a user