Перейти к содержанию

Архитектура

Высокоуровневая схема

┌─────────────────────────────────────────────────────────────────────┐
│                        LawMatic Finder                               │
├─────────────────────────────────────────────────────────────────────┤
│  ┌────────────────┐  ┌────────────────┐  ┌────────────────────────┐ │
│  │   File Browser  │  │  Search Panel  │  │   AI Chat Panel         │ │
│  │   (SwiftUI)     │  │  (SwiftUI)     │  │   (SwiftUI)             │ │
│  └───────┬────────┘  └───────┬────────┘  └───────────┬────────────┘ │
│          │                   │                        │              │
│  ┌───────▼───────────────────▼────────────────────────▼────────────┐ │
│  │                      AppCoordinator                              │ │
│  └───────┬──────────────────┬─────────────────────┬────────────────┘ │
│          │                  │                     │                  │
│  ┌───────▼──────┐  ┌────────▼────────┐  ┌────────▼────────────────┐ │
│  │ FileManager   │  │ SearchCoordinator│  │    RAGEngine           │ │
│  │ Service       │  │                   │  │  (retrieval + LLM)    │ │
│  └───────┬──────┘  └────────┬────────┘  └────────┬────────────────┘ │
│          │                  │                     │                  │
│  ┌───────▼──────────────────▼─────────────────────▼────────────────┐ │
│  │                    Data Layer                                    │ │
│  │  SQLite Core │ FTS5 │ sqlite-vec (векторный поиск)               │ │
│  └──────────────────────────────────────────────────────────────────┘ │
│                    │                                                   │
│                    ▼                                                   │
│  ┌─────────────────────────────────────────────────────────────────┐  │
│  │   External: Ollama (embeddings + LLM), Whisper (audio)           │  │
│  └─────────────────────────────────────────────────────────────────┘  │
└─────────────────────────────────────────────────────────────────────┘

Основные модули

Модуль Ответственность
FileManagerService Навигация, операции с файлами, мониторинг изменений
ContentExtractor Извлечение текста из разных форматов
IndexingCoordinator Очередь индексации, фоновая обработка
SearchCoordinator Объединение FTS5, векторного, grep, Spotlight
AnonymizationEngine Анонимизация и деанонимизация текста
RAGEngine Retrieval-Augmented Generation для AI-ответов
DatabaseManager Единый интерфейс к SQLite

Внешние сервисы

  • Ollama — локальные эмбеддинги и LLM (mxbai-embed-large, llama3 и др.)
  • Whisper — транскрипция аудио и видео