Commit Graph

8 Commits

Author SHA1 Message Date
Sadmin d8723582c9 Полный отказ от LLM: детерминированный rules-анализ
Решение Виктора: ИИ убран из проекта — карточки детей (ПД) не должны
покиать контур. Анализ полностью локальный и детерминированный.

- services/rules_analysis.py: правила вместо Claude (бывший
  analyze_with_fallback + rule_based_urgency из closed_cases):
  urgency по возрасту/профилям, зоны через geo+scoring,
  behavioral_prediction/immediate_actions/key_locations — справочники.
- search_engine: анализатор инъекцией (CaseAnalyzer, Protocol),
  импорт claude_service удалён; рантайм — rules_analyze.
- УДАЛЕНЫ: services/claude_service.py, backend/services/claude_service.py
  (устаревшая копия), test_claude_service.py; ключевые правила-кейсы
  перенесены в test_rules_analysis.py (+тест отсутствия LLM-упоминаний).
- docker-compose/.env.example: ANTHROPIC_API_KEY удалён.
- Фронт: бейдж 'ИИ-анализ' -> 'Локальный расчёт'.
- Доки: DEPLOY/SERVICES_README/ANALYZE_API переписаны, FIXES_REPORT
  помечен историческим, vector_tasks B20: zones/probability — из движка.

pytest: 187 passed (было 214; -27 удалённых LLM-тестов, +тест rules).
Контракт /analyze не изменён (фронт совместим).
2026-09-09 18:30:44 +03:00
root d6e6277d85 B20: контракт обмена Вектор↔Контур (граница проектов)
Версионированный протокольно-агностичный формат на границе: outbound
(SearchZones/RecommendedRoutes/ResourceTasks/SearchModelMeta) и inbound
(Positions/Tracks/AreasChecked/Observations/FoundEvent). Движок работает
только с форматом, транспорт — адаптеры Контура. От B20 зависят B17 и B18.
Рекоменд.порядок: B14→B15→B20→(B16,B17)→B18.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-20 16:53:06 +00:00
root bef603415f B19: переписать как отдельный проект «Контур» (не фаза Вектора)
По концепции пользователя: Вектор = «где искать», Контур = «как выполнять
поиск в поле» — два независимых проекта. Контур = ATAK + Meshtastic + GPS.
Замкнутый цикл: Вектор→зоны→Контур→поле→наблюдения→Вектор→перерасчёт.
Вектор-сторона взаимодействия = B17 (приём данных) + B18 (перерасчёт/выдача)
+ отдельная задача «Контракт обмена» (развязка: движок не знает ATAK/Mesh).

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-20 16:51:49 +00:00
root 25d852035a B13–B19: дорожная карта реструктуризации Вектора в систему подсистем
B13 — каркас-видение: 7 подсистем (Core/GIS/Search Area/Field Data/
Real-time/Backend/UI) + 4 ключевых принципа (развязка движка, 4 слоя данных,
итеративная модель, очередь задач) + технический контур PostGIS.
B14 — чистый SearchEngine (поведение-сохраняющий, B1-safe).
B15 — 4 слоя данных: схема + Alembic-миграция + версионирование моделей.
B16 — GIS: PostGIS + локальный OSM (замена живого Overpass).
B17 — Field Data: модель + ингестия операционных данных.
B18 — итеративный пересчёт модели + очередь задач (event-driven).
B19 — «Контур» (ATAK + Meshtastic, реал-тайм) — плейсхолдер, отдельный проект.
Сводка и рекомендуемый порядок обновлены.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-20 16:46:14 +00:00
Sadmin c2ad5c1915 Обновить vector_tasks.md 2026-08-15 13:36:23 +00:00
root 83e75e7c24 docs(tasks): add B11 (Anthropic -> local Ollama) and B12 (ISRID priors)
Both are Section B (needs-context): B11 touches the AnalysisResult
contract and the question of where an LLM is needed at all; B12 touches
scoring coefficients and the DB schema, which project rules keep off
limits to automated edits.

B11 records the key finding that the LLM does not compute priorities --
the math already lives in geo_service/scoring_service/psychotype_service
and analyze_with_fallback already returns a full AnalysisResult with no
API. The only unique in-hot-path LLM role is parsing free-text reports,
so a strict intake form and a local provider are independent levers.

B12 notes ISRID supplies empirical priors for the currently hand-tuned
zone weights, with the legal status of the database flagged as a
blocking question to resolve before any data enters the repo.

Summary table updated to B1-B12.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-25 13:31:04 +00:00
root b30ce86fa9 docs: fix LXC host address 192.168.0.108 -> 192.168.0.99
Revert of A9 address change. The .108 value was inferred from the
container VMID (108), not from its actual network config: net0 is
ip=dhcp and the container currently holds 192.168.0.99. Requests to
.108 fail with "No route to host", making the UI look down while all
four compose services are healthy.

A9 section in vector_tasks.md is kept as history and flagged stale so
the .99 -> .108 replacement is not repeated.

Note: the address is DHCP-assigned and may change again; a static IP
would be needed to make these docs durable. Hardcoded .99 URLs remain
in MobileForm.jsx:49 and HeatmapView.jsx:73 (tracked in vector_tasks.md,
untouched here).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-25 13:21:15 +00:00
Sadmin 527b82767a Add vector tech-debt task queue 2026-07-23 21:01:44 +00:00